# Copyright 2015 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2

EAPI="7"
PYTHON_COMPAT=( python3_{6,7,8} )

inherit python-single-r1

# To roll grit to a new version:
#  1. Determine the commit to roll to and update GIT_SHA1 below.
#  2. Obtain a tarball corresponding to ${GIT_SHA1} from
#     https://chromium.googlesource.com/chromium/src/tools/grit/+archive/${GIT_SHA1}.tar.gz
#  3. Upload the tarball as ${PN}-${GIT_SHA1}.tar.gz to
#     chromeos-localmirror/distfiles
#  4. Rename the ebuild, using the date corresponding to ${GIT_SHA1}'s commit
#     time stamp as the new version.
GIT_SHA1="73253b76da834152a7cfa76f6b4208694febf4d5"
SRC_URI="gs://chromeos-localmirror/distfiles/${PN}-${GIT_SHA1}.tar.gz"

DESCRIPTION="GRIT - Google Resource and Internationalization Tool"
HOMEPAGE="https://chromium.googlesource.com/chromium/src/tools/grit/"

LICENSE="BSD-2"
SLOT="0"
KEYWORDS="*"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"

DEPEND="${PYTHON_DEPS}"
RDEPEND="${DEPEND}"

S="${WORKDIR}"

PATCHES=(
	"${FILESDIR}"/${PN}-revert-diags.patch
)

src_install() {
	python_domodule grit
	python_newscript grit.py grit

	# Delete unneeded stuff pulled in from the source tree.
	local grit_module_dir="${ED}/$(python_get_sitedir)/grit"
	rm -rf "${grit_module_dir}"/{testdata,grit-todo.xml}
	find "${grit_module_dir}" \
		-regex '.*/\(.*_unittest.*\|PRESUBMIT\)\.py[co]?$' \
		-delete
}
