gnu: Add reptyr.

Message ID 1468006716.1010694.660917729.687C408B@webmail.messagingengine.com
State New
Headers

Commit Message

Alex Griffin July 8, 2016, 7:38 p.m. UTC
  This patch adds reptyr, a tool for reparenting a running program to a
new terminal. I put it in screen.scm because it is usually used to move
a process into a screen or tmux session.

Also somewhat related, I think the file tmux.scm should merge with
screen.scm.

Thanks,
 -- 
Alex Griffin
  

Comments

Leo Famulari July 9, 2016, 6:20 p.m. UTC | #1
On Fri, Jul 08, 2016 at 02:38:36PM -0500, Alex Griffin wrote:
> This patch adds reptyr, a tool for reparenting a running program to a
> new terminal. I put it in screen.scm because it is usually used to move
> a process into a screen or tmux session.

Thank you, I will use this :)

> Also somewhat related, I think the file tmux.scm should merge with
> screen.scm.

If we are considering moving these packages around, I think that
screen.scm and tmux.scm should go into terminals.scm. But, I also think
that this patch should not be held up by that discussion.

> +    (arguments
> +     '(#:tests? #f

Why skip the tests? We prefer to run tests whenever possible. Otherwise,
please add a comment explaining why. For example "No test suite."

> +       #:phases (alist-delete 'configure %standard-phases)))

This is short and sweet, but we like to use modify-phases for
consistency.

> +    (description
> +     "reptyr is a utility for taking an existing running program and attaching
> +it to a new terminal.  Started a long-running process over ssh, but have to
> +leave and don't want to interrupt it?  Just start a screen, use reptyr to grab
> +it, and then kill the ssh session and head on home.")

We should capitalize the beginning of the description, and I would also
wrap 'ssh' and 'screen' in texinfo:

@code{ssh}
@code{screen}
  

Patch

From 8e48e2a27b16215a23ecc224661808b58a6a7c40 Mon Sep 17 00:00:00 2001
From: Alex Griffin <a@ajgrf.com>
Date: Fri, 8 Jul 2016 14:27:32 -0500
Subject: [PATCH] gnu: Add reptyr.

* gnu/packages/screen.scm (reptyr): New variable.
---
 gnu/packages/screen.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm
index a4eefd8..74f3f44 100644
--- a/gnu/packages/screen.scm
+++ b/gnu/packages/screen.scm
@@ -3,6 +3,7 @@ 
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -144,3 +145,30 @@  as folding room dividers.  The Byobu software includes an enhanced profile,
 configuration utilities, and system status notifications for the GNU Screen
 window manager as well as the Tmux terminal multiplexer.")
     (license gpl3+)))
+
+(define-public reptyr
+  (package
+    (name "reptyr")
+    (version "0.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/nelhage/reptyr/archive"
+                           "/reptyr-" version ".tar.gz"))
+       (sha256
+        (base32
+         "07pfl0rkgm8m3f3jy8r9l2yvnhf8lgllpsk3mh57mhzdxq8fagf7"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f
+       #:make-flags (list "CC=gcc"
+                          (string-append "PREFIX=" %output))
+       #:phases (alist-delete 'configure %standard-phases)))
+    (home-page "https://github.com/nelhage/reptyr")
+    (synopsis "Tool for reparenting a running program to a new terminal")
+    (description
+     "reptyr is a utility for taking an existing running program and attaching
+it to a new terminal.  Started a long-running process over ssh, but have to
+leave and don't want to interrupt it?  Just start a screen, use reptyr to grab
+it, and then kill the ssh session and head on home.")
+    (license expat)))
-- 
2.9.0