summary refs log tree commit diff
path: root/gnu/packages/task-management.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/task-management.scm')
-rw-r--r--gnu/packages/task-management.scm84
1 files changed, 83 insertions, 1 deletions
diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm
index c0b3cd963c..29515c6eb9 100644
--- a/gnu/packages/task-management.scm
+++ b/gnu/packages/task-management.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2021 Reza Alizadeh Majd <r.majd@pantherx.org>
 ;;; Copyright © 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org>
+;;; Copyright © 2022 Matthew James Kraai <kraai@ftbfs.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix gexp)
   #:use-module (guix packages)
+  #:use-module (gnu packages)
   #:use-module (gnu packages check)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
@@ -35,7 +37,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
-  #:use-module (gnu packages libreoffice)  ;for hunspell
+  #:use-module (gnu packages hunspell)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages ncurses)
@@ -44,6 +46,8 @@
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
   #:use-module (guix download)
@@ -152,6 +156,84 @@ Done time management method.  It supports network synchronization, filtering
 and querying data, exposing task data in multiple formats to other tools.")
     (license license:expat)))
 
+(define-public tasksh
+  (package
+    (name "tasksh")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://taskwarrior.org/download/tasksh-" version ".tar.gz"))
+       (sha256 (base32
+                "1z8zw8lld62fjafjvy248dncjk0i4fwygw0ahzjdvyyppx4zjhkf"))))
+    (build-system cmake-build-system)
+    (inputs
+     (list readline))
+    (arguments
+     `(#:tests? #f ; No tests implemented.
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'install-license-files)))) ; Already installed by package
+    (home-page "https://taskwarrior.org")
+    (synopsis "Taskwarrior shell")
+    (description
+     "Tasksh is a shell for Taskwarrior, providing a more immersive
+environment for list management. It has a review feature, shell command
+execution, and libreadline support.")
+    (license license:expat)))
+
+(define-public timewarrior
+  (package
+    (name "timewarrior")
+    (version "1.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/GothenburgBitFactory/timewarrior/releases/download/v" version
+             "/timew-" version ".tar.gz"))
+       (patches (search-patches "timewarrior-time-sensitive-tests.patch"))
+       (sha256 (base32
+                "0lyaqzcg8np2fpsmih0hlkjxd3qbadc7khr24m1pq9lsdhq7xpy4"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'patch-source-shebangs 'patch-cmake-shell
+            (lambda _
+              (substitute* "src/commands/CMakeLists.txt"
+                (("/bin/sh") "sh"))))
+          ;; Fix out of source building of manual pages
+          (add-after 'patch-source-shebangs 'patch-man-cmake
+            (lambda _
+              (substitute* "doc/man1/CMakeLists.txt"
+                (("\\$\\{CMAKE_CURRENT_BINARY_DIR\\}")
+                 "${CMAKE_CURRENT_SOURCE_DIR}"))
+              (substitute* "doc/man7/CMakeLists.txt"
+                (("\\$\\{CMAKE_CURRENT_BINARY_DIR\\}")
+                 "${CMAKE_CURRENT_SOURCE_DIR}"))))
+          (add-after 'install 'install-completions
+            (lambda _
+              (let ((bash-completion-install-dir
+                     (string-append #$output "/etc/bash_completion.d")))
+                (mkdir-p bash-completion-install-dir)
+                (copy-file
+                 "../timew-1.4.3/completion/timew-completion.bash"
+                 (string-append bash-completion-install-dir "/timew"))))))))
+    (native-inputs
+     (list ruby-asciidoctor))
+    (inputs
+     (list gnutls python `(,util-linux "lib")))
+    (home-page "https://timewarrior.net")
+    (synopsis "Command line utility to track and report time")
+    (description
+     "Timewarrior is a command line time tracking application, which allows
+you to record time spent on activities.  You may be tracking your time for
+curiosity, or because your work requires it.")
+    (license license:expat)))
+
 (define-public worklog
   (let ((commit "0f545ad6697ef4de7f68d92cd7cc5c6a4c60517b")
         (revision "1"))