summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/tmux.scm41
1 files changed, 40 insertions, 1 deletions
diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm
index 0930972473..c028a885d2 100644
--- a/gnu/packages/tmux.scm
+++ b/gnu/packages/tmux.scm
@@ -37,7 +37,8 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages libevent)
-  #:use-module (gnu packages ncurses))
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages sphinx))
 
 (define-public tmux
   (package
@@ -185,6 +186,44 @@ manager in Python.  It creates object mappings to traverse, inspect and interact
 with live tmux sessions.")
     (license license:expat)))
 
+(define-public python-daemux
+  (package
+    (name "python-daemux")
+    (version "0.1.0")
+    (source
+     ;; We fetch from the Git repo because there are no tests in the PyPI
+     ;; archive.
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/edouardklein/daemux.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0cb8v552f2hkwz6d3hwsmrz3gd28jikga3lcc3r1zlw8ra7804ph"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (mkdir-p "tmptmux")
+                      (setenv "TMUX_TMPDIR" (string-append (getcwd) "/tmptmux"))
+                      (invoke "tmux" "new-session" "-d")
+                      (invoke "make" "test"))))))
+    (propagated-inputs
+     `(("python-libtmux" ,python-libtmux)))
+    (native-inputs
+     `(("python-coverage" ,python-coverage)
+       ("python-sphinx" ,python-sphinx)
+       ("tmux" ,tmux)))
+    (home-page "https://github.com/edouardklein/daemux")
+    (synopsis "Start, stop, restart and check daemons via tmux")
+    (description
+     "Daemux lets you run daemons in a @command{tmux} pane.  Users can launch
+long-running background tasks, and check these tasks' health by hand, relaunch
+them, etc., by attaching to the corresponding pane in tmux.")
+    (license license:agpl3+)))
+
 (define-public tmux-xpanes
   (package
     (name "tmux-xpanes")