# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) inherit bash-completion-r1 python-any-r1 DESCRIPTION="Git based tool for managing dotfiles" HOMEPAGE="https://github.com/TheLocehiliosan/yadm" SRC_URI=" https://github.com/TheLocehiliosan/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz " LICENSE="GPL-3+" SLOT="0" KEYWORDS="amd64 ~ppc64 ~x86" IUSE="test" RESTRICT="!test? ( test )" RDEPEND=" app-crypt/gnupg app-shells/bash dev-vcs/git " BDEPEND=" test? ( ${RDEPEND} ${PYTHON_DEPS} $(python_gen_any_dep ' dev-python/pytest[${PYTHON_USEDEP}] ') dev-tcltk/expect ) " DOCS=( CHANGES README.md ${PN}.md ) python_check_deps() { python_has_version -b "dev-python/pytest[${PYTHON_USEDEP}]" } pkg_setup() { use test && python-any-r1_pkg_setup } src_compile() { emake "${PN}.md" } src_test() { # prevent system config having influence on tests local -x GIT_CONFIG_NOSYSTEM=1 # prevent git branch warning, it confuses tests local -x GIT_CONFIG_GLOBAL="${HOME}/.gitconfig" git config --global init.defaultBranch master || die "setting default branch name failed" # un-hardcode path to tmp, otherwise encryption tests fail sed -e "/^cache_dir/s@/tmp@${T}@" -i pytest.ini || die "cannot patch cache dir" local EPYTEST_DESELECT=( test/test_alt.py # requires envtpl, not packaged test/test_compat_jinja.py # ditto test/test_unit_template_j2.py # ditto test/test_syntax.py # needs new yamllint, not packaged yet test/test_upgrade.py::test_upgrade # needs old version of yadm test/test_compat_alt.py # tests obsolete features, broken test/test_unit_template_esh.py # requires esh, not packaged test/test_encryption.py::test_symmetric_encrypt[clean-encrypt_exists-bad_phrase] # hangs in sandbox test/test_encryption.py::test_symmetric_encrypt[overwrite-encrypt_exists-bad_phrase] # ditto ) epytest } src_install() { einstalldocs dobin "${PN}" doman "${PN}.1" dobashcomp completion/bash/yadm insinto /usr/share/zsh/site-functions doins completion/zsh/_${PN} insinto /usr/share/fish/vendor_completions.d doins completion/fish/${PN}.fish }