guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 673b8d6accbf0efc894ab8d2427317043c2c02cd
Author: Sharlatan Hellseher <[email protected]>
AuthorDate: Thu Feb 5 22:35:03 2026 +0000

    gnu: Add go-github-com-charmbracelet-x-xpty.
    
    * gnu/packages/golang-xyz.scm (go-github-com-charmbracelet-x-xpty): New 
variable.
    
    Change-Id: I85e99ff0d9ea24737835cb3b632d8cbab1559d01
---
 gnu/packages/golang-xyz.scm | 48 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index ddd566dc9e..5cddfb5521 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -4202,6 +4202,54 @@ package provides an API for comparing Golden files.")
      "This package provides the Windows API used at Charmbracelet.")
     (license license:expat)))
 
+(define-public go-github-com-charmbracelet-x-xpty
+  (package
+    (name "go-github-com-charmbracelet-x-xpty")
+    (version "0.1.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/charmbracelet/x";)
+              (commit (go-version->git-ref version
+                                           #:subdir "xpty"))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0blpb8vpl7sc6pb43h0730wdcwrkvnhly6qhik6wljrzn2nqz5g2"))
+       (modules '((guix build utils)
+                  (ice-9 ftw)
+                  (srfi srfi-26)))
+       (snippet
+        #~(begin
+            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
+            ;; Consider to implement it as re-usable procedure in
+            ;; guix/build/utils or guix/build-system/go.
+            (define (delete-all-but directory . preserve)
+              (with-directory-excursion directory
+                (let* ((pred (negate (cut member <>
+                                          (cons* "." ".." preserve))))
+                       (items (scandir "." pred)))
+                  (for-each (cut delete-file-recursively <>) items))))
+            (delete-all-but "." "xpty")))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/charmbracelet/x/xpty"
+      #:unpack-path "github.com/charmbracelet/x"))
+    (propagated-inputs
+     (list go-github-com-charmbracelet-x-conpty
+           go-github-com-charmbracelet-x-term
+           go-github-com-charmbracelet-x-termios
+           go-github-com-creack-pty
+           go-golang-org-x-sys))
+    (home-page "https://github.com/charmbracelet/x";)
+    (synopsis "Interfaces to interact with pseudo-terminals")
+    (description
+     "Package xpty provides platform-independent interfaces to interact with
+pseudo-terminals (PTYs) in Go.  It abstracts the differences between Unix and
+Windows systems and supports both @code{ConPTY} and classic Unix PTYs.")
+    (license license:expat)))
+
 (define-public go-github-com-checkpoint-restore-go-criu-v6
   (package
     (name "go-github-com-checkpoint-restore-go-criu-v6")

Reply via email to