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

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

99 lines
2.3 KiB
Nix
Raw Normal View History

2024-10-01 20:13:30 +00:00
{
fetchFromGitHub,
installShellFiles,
jq,
lib,
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";
2024-10-01 20:13:30 +00:00
pyproject = true;
2018-08-24 10:22:05 +00:00
2022-10-17 16:12:09 +00:00
src = fetchFromGitHub {
owner = "pimutils";
2024-10-01 20:13:30 +00:00
repo = "todoman";
2022-10-17 16:12:09 +00:00
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
2024-10-01 20:13:30 +00:00
];
build-system = with python3.pkgs; [
2021-04-19 22:17:29 +00:00
setuptools-scm
2024-10-01 20:13:30 +00:00
];
2021-11-10 00:01:04 +00:00
2024-10-01 20:13:30 +00:00
dependencies = with python3.pkgs; [
2020-04-26 08:03:11 +00:00
atomicwrites
click
click-log
click-repl
humanize
icalendar
parsedatetime
python-dateutil
pyxdg
2024-10-01 20:11:17 +00:00
pytz
2020-04-26 08:03:11 +00:00
tabulate
urwid
];
2018-08-24 10:22:05 +00:00
nativeCheckInputs = with python3.pkgs; [
2020-04-26 08:03:11 +00:00
freezegun
hypothesis
2021-11-10 00:01:04 +00:00
pytestCheckHook
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
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.
'';
2024-10-01 20:13:30 +00:00
changelog = "https://todoman.readthedocs.io/en/stable/changelog.html#v${
builtins.replaceStrings [ "." ] [ "-" ] version
}";
license = lib.licenses.isc;
2024-10-01 20:13:30 +00:00
maintainers = with lib.maintainers; [
leenaars
antonmosich
];
2023-08-05 12:36:07 +00:00
mainProgram = "todo";
2018-08-24 10:22:05 +00:00
};
}