nixpkgs/pkgs/applications/office/todoman/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

96 lines
2.4 KiB
Nix
Raw Normal View History

2022-10-17 16:12:09 +00:00
{ lib
, fetchFromGitHub
2020-04-26 08:03:11 +00:00
, glibcLocales
, installShellFiles
, jq
2022-10-17 16:12:09 +00:00
, python3
2020-04-26 08:03:11 +00:00
}:
2022-10-17 16:12:09 +00:00
python3.pkgs.buildPythonApplication rec {
2018-08-24 10:22:05 +00:00
pname = "todoman";
version = "4.4.0";
2023-08-05 09:50:24 +00:00
format = "pyproject";
2018-08-24 10:22:05 +00:00
2022-10-17 16:12:09 +00:00
src = fetchFromGitHub {
owner = "pimutils";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-5tQaNT6QVN9mxa9t6OvMux4ZGy4flUqszTAwet2QL0w=";
2018-08-24 10:22:05 +00:00
};
2021-04-19 22:17:29 +00:00
2020-04-26 08:03:11 +00:00
nativeBuildInputs = [
installShellFiles
2022-10-17 16:12:09 +00:00
] ++ (with python3.pkgs; [
2021-04-19 22:17:29 +00:00
setuptools-scm
2022-10-17 16:12:09 +00:00
]);
2021-11-10 00:01:04 +00:00
2020-04-26 08:03:11 +00:00
propagatedBuildInputs = with python3.pkgs; [
atomicwrites
click
click-log
click-repl
humanize
icalendar
parsedatetime
python-dateutil
pyxdg
tabulate
urwid
];
2018-08-24 10:22:05 +00:00
nativeCheckInputs = with python3.pkgs; [
2020-04-26 08:03:11 +00:00
flake8
flake8-import-order
freezegun
hypothesis
2021-11-10 00:01:04 +00:00
pytestCheckHook
glibcLocales
2024-07-20 00:23:44 +00:00
pytest-cov-stub
2020-04-26 08:03:11 +00:00
];
2018-08-24 10:22:05 +00:00
LC_ALL = "en_US.UTF-8";
2018-08-24 10:22:05 +00:00
2020-02-24 12:00:00 +00:00
postInstall = ''
installShellCompletion --bash contrib/completion/bash/_todo
substituteInPlace contrib/completion/zsh/_todo --replace "jq " "${lib.getExe jq} "
2020-02-24 12:00:00 +00:00
installShellCompletion --zsh contrib/completion/zsh/_todo
'';
2021-11-10 00:01:04 +00:00
disabledTests = [
# Testing of the CLI part and output
"test_color_due_dates"
"test_color_flag"
"test_default_command"
"test_main"
"test_missing_cache_dir"
"test_sorting_null_values"
"test_xdg_existant"
2022-10-17 16:12:09 +00:00
# Tests are sensitive to performance
"test_sorting_fields"
2021-11-10 00:01:04 +00:00
];
pythonImportsCheck = [
"todoman"
];
2018-08-24 10:22:05 +00:00
meta = {
homepage = "https://github.com/pimutils/todoman";
2018-08-24 10:22:05 +00:00
description = "Standards-based task manager based on iCalendar";
longDescription = ''
2022-10-17 16:12:09 +00:00
Todoman is a simple, standards-based, cli todo (aka task) manager. Todos
are stored into iCalendar files, which means you can sync them via CalDAV
2018-08-24 10:22:05 +00:00
using, for example, vdirsyncer.
Todos are read from individual ics files from the configured directory.
2022-10-17 16:12:09 +00:00
This matches the vdir specification. There is support for the most common TODO
2018-08-24 10:22:05 +00:00
features for now (summary, description, location, due date and priority) for
2022-10-17 16:12:09 +00:00
now.
2018-08-24 10:22:05 +00:00
Unsupported fields may not be shown but are never deleted or altered.
'';
changelog = "https://todoman.readthedocs.io/en/stable/changelog.html#v${builtins.replaceStrings ["."] ["-"] version}";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [ leenaars antonmosich ];
2023-08-05 12:36:07 +00:00
mainProgram = "todo";
2018-08-24 10:22:05 +00:00
};
}