Subject: [PATCH] gnu: Add python-daemux

From: Edouard Klein <[email-masked]>
Date: Tue, 26 May 2020 10:58:48 +0200

* gnu/packages/tmux.scm (python-daemux): New variable.
---
 gnu/packages/tmux.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm
index c4dd963b53..ace4664813 100644
--- a/gnu/packages/tmux.scm
+++ b/gnu/packages/tmux.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages sphinx)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages ncurses))
@@ -186,6 +187,44 @@ It builds upon tmux's target and formats to create an object mapping 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 "v0.1.0")))
+       (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)))
+    (home-page "https://github.com/edouardklein/daemux")
+    (synopsis
+     "Start, stop, restart and check daemons via tmux")
+    (description
+     "Daemux lets you run daemons in a 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")
-- 
2.26.2