# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DISTUTILS_USE_PEP517=poetry
PYTHON_COMPAT=( python3_{12..14} )
inherit distutils-r1 optfeature shell-completion

DESCRIPTION="A command line interface for the Nitrokey FIDO2, Start, 3 and NetHSM"
HOMEPAGE="https://github.com/Nitrokey/pynitrokey"

SRC_URI="https://github.com/Nitrokey/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"

LICENSE="|| ( Apache-2.0 MIT )"
SLOT="0"
KEYWORDS="~amd64"

RDEPEND="
	>=dev-python/cffi-1.15[${PYTHON_USEDEP}]
	<dev-python/cffi-3[${PYTHON_USEDEP}]
	>=dev-python/click-8.2[${PYTHON_USEDEP}]
	<dev-python/click-9[${PYTHON_USEDEP}]
	>=dev-python/cryptography-43[${PYTHON_USEDEP}]
	<dev-python/cryptography-50[${PYTHON_USEDEP}]
	=dev-python/fido2-2*[${PYTHON_USEDEP}]
	>=dev-python/hidapi-0.14[${PYTHON_USEDEP}]
	=dev-python/intelhex-2*[${PYTHON_USEDEP}]
	>=dev-python/nitrokey-0.4.2[${PYTHON_USEDEP}]
	<dev-python/nitrokey-0.5[${PYTHON_USEDEP}]
	=dev-python/nkdfu-0.2*[${PYTHON_USEDEP}]
	=dev-python/pyusb-1*[${PYTHON_USEDEP}]
	=dev-python/requests-2*[${PYTHON_USEDEP}]
	=dev-python/tqdm-4*[${PYTHON_USEDEP}]
	=dev-python/tlv8-0.10*[${PYTHON_USEDEP}]
	=dev-python/semver-3*[${PYTHON_USEDEP}]
	>=dev-python/nethsm-2.1.1[${PYTHON_USEDEP}]
	<dev-python/nethsm-3[${PYTHON_USEDEP}]
"

# tests require a connected nitrokey device and will destroy the data on it!
# it would be bad if the user was not expecting this.
RESTRICT="test"

python_compile_all(){
	# https://github.com/Nitrokey/pynitrokey/blob/master/docs/packaging.md
	_NITROPY_COMPLETE=bash_source nitropy > nitropy.bash || die
	_NITROPY_COMPLETE=zsh_source nitropy > nitropy.zsh || die
	_NITROPY_COMPLETE=fish_source nitropy > nitropy.fish || die
}

python_install_all(){
	newbashcomp nitropy.bash nitropy
	newzshcomp nitropy.zsh _nitropy
	dofishcomp nitropy.fish

	distutils-r1_python_install_all
}

pkg_postinst(){
	optfeature "'piv' subcommand support" dev-python/pyscard
}