92 lines
2.1 KiB
Bash
92 lines
2.1 KiB
Bash
# 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
|
|
}
|