summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorSharlatan Hellseher <sharlatanus@gmail.com>2026-02-05 22:35:03 +0000
committerSharlatan Hellseher <sharlatanus@gmail.com>2026-02-05 23:54:15 +0000
commit673b8d6accbf0efc894ab8d2427317043c2c02cd (patch)
tree250dd7a5ae0a95178d646355cfda66adec2b56eb /gnu
parent48ac19394194ba106569cac3c971c43c50a0ba3d (diff)
gnu: Add go-github-com-charmbracelet-x-xpty.
* gnu/packages/golang-xyz.scm (go-github-com-charmbracelet-x-xpty): New variable. Change-Id: I85e99ff0d9ea24737835cb3b632d8cbab1559d01
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/golang-xyz.scm48
1 files changed, 48 insertions, 0 deletions
diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index ddd566dc9e6..5cddfb55216 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")