audible-cli: refactor

- adopt `pyproject = true`
- use pythonRelaxDepsHook
- enable shell completions
- update license
- add changelog to meta
- add mainProgram to meta
This commit is contained in:
natsukium 2023-10-18 19:38:10 +09:00
parent 60f62ab2da
commit ab47bc4dd7
No known key found for this signature in database
GPG Key ID: 9EA45A31DB994C53

View File

@ -1,28 +1,63 @@
{ lib, python3Packages, fetchFromGitHub }:
{ lib, python3Packages, fetchFromGitHub, installShellFiles }:
python3Packages.buildPythonApplication rec {
pname = "audible-cli";
version = "0.2.5";
pyproject = true;
src = fetchFromGitHub {
owner = "mkb79";
repo = pname;
repo = "audible-cli";
rev = "refs/tags/v${version}";
hash = "sha256-YGvnye6YSp/H/2HAw6A8z5VzzCqa3ktJucq+3cXPUpc=";
};
propagatedBuildInputs = with python3Packages; [ aiofiles audible click httpx pillow tabulate toml tqdm packaging setuptools questionary ];
nativeBuildInputs = with python3Packages; [
pythonRelaxDepsHook
setuptools
] ++ [
installShellFiles
];
postPatch = ''
substituteInPlace setup.py \
--replace "httpx>=0.20.0,<0.24.0" "httpx" \
--replace "audible>=0.8.2" "audible"
propagatedBuildInputs = with python3Packages; [
aiofiles
audible
click
httpx
packaging
pillow
questionary
tabulate
toml
tqdm
];
pythonRelaxDeps = [
"httpx"
"audible"
];
postInstall = ''
export PATH=$out/bin:$PATH
installShellCompletion --cmd audible \
--bash <(source utils/code_completion/audible-complete-bash.sh) \
--fish <(source utils/code_completion/audible-complete-zsh-fish.sh) \
--zsh <(source utils/code_completion/audible-complete-zsh-fish.sh)
'';
# upstream has no tests
doCheck = false;
pythonImportsCheck = [
"audible_cli"
];
meta = with lib; {
description = "A command line interface for audible package. With the cli you can download your Audible books, cover, chapter files";
license = licenses.agpl3;
license = licenses.agpl3Only;
homepage = "https://github.com/mkb79/audible-cli";
changelog = "https://github.com/mkb79/audible-cli/blob/${src.rev}/CHANGELOG.md";
maintainers = with maintainers; [ jvanbruegge ];
mainProgram = "audible";
};
}