Subject: [bug#71843] [PATCH 12/26] gnu: Add go-github-com-gookit-color.

From: Sharlatan Hellseher <[email-masked]>
Date: Sun, 30 Jun 2024 10:05:52 +0100

* gnu/packages/golang-xyz.scm (go-github-com-gookit-color): New variable.

Change-Id: I7caa860ae1605fff0da7490ec46ff816cad38143
---
 gnu/packages/golang-xyz.scm | 61 +++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index e7fabd6b94..78bc6dd71b 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -1772,6 +1772,67 @@ (define-public go-github-com-gobwas-glob
      "This package provides a Go implementation of globs.")
     (license license:expat)))
 
+(define-public go-github-com-gookit-color
+  (package
+    (name "go-github-com-gookit-color")
+    (version "1.5.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gookit/color")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "012naz084chvdqzrrzv9pklqfh259hi2jcp2f3n39fppvjwmzgkf"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:go go-1.21
+      #:import-path "github.com/gookit/color"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-failing-tests
+            (lambda* (#:key import-path #:allow-other-keys)
+              (with-directory-excursion (string-append "src/" import-path)
+                ;; Error: Received unexpected
+                ;; error: open README.md: permission denied.
+                ;; Reported upstream, see
+                ;; <https://github.com/gookit/color/pull/91>.
+                (substitute* "utils_test.go"
+                  (("os.O_WRONLY") "os.O_RDONLY"))))))))
+    (native-inputs
+     (list go-github-com-stretchr-testify))
+    (propagated-inputs
+     (list go-github-com-xo-terminfo
+           go-golang-org-x-sys))
+    (home-page "https://github.com/gookit/color")
+    (synopsis "Terminal color rendering library")
+    (description
+     "This package provides a command-line color library with 16/256/True
+color support, universal API methods and Windows support.
+
+Features:
+@itemize
+@item supports rich color output: 16-color (4-bit), 256-color (8-bit), true
+color (24-bit, RGB)
+@item support converts HEX HSL value to RGB color
+@item generic API methods: @code{Print}, @code{Printf}, @code{Println},
+@code{Sprint}, @code{Sprintf}
+@item supports HTML tag-style color rendering, such as @code{<green>message</>
+<fg=red;bg=blue>text</>}
+@item basic colors: @code{Bold}, @code{Black}, @code{White}, @code{Gray},
+@code{Red}, @code{Green}, @code{Yellow}, @code{Blue}, @code{Magenta},
+@code{Cyan}
+@item additional styles: @code{Info}, @code{Note}, @code{Light}, @code{Error},
+@code{Danger}, @code{Notice}, @code{Success}, @code{Comment}, @code{Primary},
+@code{Warning}, @code{Question}, @code{Secondary}
+@item support by set @code{NO_COLOR} for disable color or use
+@code{FORCE_COLOR} for force open color render
+@item support RGB, 256, 16 color conversion
+@end itemize")
+    (license license:expat)))
+
 (define-public go-github-com-hashicorp-errwrap
   (package
     (name "go-github-com-hashicorp-errwrap")
-- 
2.41.0