···11+{ stdenv, python3, glibcLocales }:
22+33+let
44+ inherit (python3.pkgs) buildPythonApplication fetchPypi;
55+in
66+buildPythonApplication rec {
77+ pname = "todoman";
88+ version = "3.4.0";
99+ name = "${pname}-${version}";
1010+1111+ src = fetchPypi {
1212+ inherit pname version;
1313+ sha256 = "09441fdrwz2irsbrxnpwys51372z6rn6gnxn87p95r3fv9gmh0fw";
1414+ };
1515+1616+ LOCALE_ARCHIVE = stdenv.lib.optionalString stdenv.isLinux
1717+ "${glibcLocales}/lib/locale/locale-archive";
1818+ LANG = "en_US.UTF-8";
1919+ LC_TYPE = "en_US.UTF-8";
2020+2121+ buildInputs = [ glibcLocales ];
2222+ propagatedBuildInputs = with python3.pkgs;
2323+ [ atomicwrites click click-log configobj humanize icalendar parsedatetime
2424+ python-dateutil pyxdg tabulate urwid ];
2525+2626+ checkInputs = with python3.pkgs;
2727+ [ flake8 flake8-import-order freezegun hypothesis pytest pytestrunner pytestcov ];
2828+2929+ makeWrapperArgs = [ "--set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive"
3030+ "--set CHARSET en_us.UTF-8" ];
3131+3232+ preCheck = ''
3333+ # Remove one failing test that only checks whether the command line works
3434+ rm tests/test_main.py
3535+ '';
3636+3737+ meta = with stdenv.lib; {
3838+ homepage = https://github.com/pimutils/todoman;
3939+ description = "Standards-based task manager based on iCalendar";
4040+ longDescription = ''
4141+ Todoman is a simple, standards-based, cli todo (aka: task) manager. Todos
4242+ are stored into icalendar files, which means you can sync them via CalDAV
4343+ using, for example, vdirsyncer.
4444+4545+ Todos are read from individual ics files from the configured directory.
4646+ This matches the vdir specification. There’s support for the most common TODO
4747+ features for now (summary, description, location, due date and priority) for
4848+ now. Runs on any Unix-like OS. It’s been tested on GNU/Linux, BSD and macOS.
4949+ Unsupported fields may not be shown but are never deleted or altered.
5050+5151+ Todoman is part of the pimutils project
5252+ '';
5353+ license = licenses.isc;
5454+ maintainers = with maintainers; [ leenaars ];
5555+ platforms = platforms.linux;
5656+ };
5757+}