civodul pushed a commit to branch master
in repository guix.

commit c872b3bc39cca8cd7344507ce4cdab211a8f3c6f
Author: Yuval Langer <yuval.lan...@gmail.com>
AuthorDate: Sun Jan 14 14:54:10 2024 +0200

    gnu: Add guile-rsv.
    
    * gnu/packages/guile-xyz.scm (guile-rsv): New variable.
    
    Co-authored-by: Ludovic Courtès <l...@gnu.org>
    Change-Id: Idede9ef290db92c95ea29f8ad35c9e3a9cdbfa62
---
 gnu/packages/guile-xyz.scm | 60 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 49b708b443..c0b0dfd78c 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -5496,6 +5496,66 @@ using a short read-capability.")
     (home-page "https://codeberg.org/eris/guile-eris";)
     (license license:gpl3+)))
 
+(define-public guile-rsv
+  (let ((commit "41b04c85eef31d4d51001c6d66e8fd339fcc614c")
+        (revision "1"))
+    (package
+      (name "guile-rsv")
+      (version (git-version "0.2.0" revision commit))
+      (home-page "https://codeberg.org/kakafarm/guile-rsv/";)
+      (source
+       (origin
+         (uri (git-reference (url home-page) (commit commit)))
+         (method git-fetch)
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1w9jbkpmh13zrxkj915nm3l537smm0jsrdzrzcxylb6w59vqpw6l"))))
+      (inputs (list guile-3.0 bash))
+      (build-system guile-build-system)
+      (arguments
+       (list
+        #:phases #~(modify-phases %standard-phases
+                     (add-after 'install 'link-and-wrap-executable
+                       (lambda _
+                         (let* ((bin (string-append #$output "/bin"))
+                                ;; bin directory for PATH.
+                                (site-version (target-guile-effective-version))
+                                (scm (string-append "/share/guile/site/"
+                                                    site-version))
+                                (go (string-append "/lib/guile/" site-version
+                                                   "/site-ccache")))
+                           (mkdir-p bin)
+                           (for-each (lambda (command-name)
+                                       (let ((source-script (string-append 
#$output
+                                                                           scm 
"/"
+                                                                           
command-name
+                                                                           
".scm"))
+                                             (target-command (string-append
+                                                              bin "/"
+                                                              command-name)))
+                                         (symlink source-script target-command)
+                                         (wrap-program target-command
+                                           #:sh (which "bash")
+                                           `("GUILE_LOAD_PATH" prefix
+                                             (,(string-append #$output scm)))
+                                           `("GUILE_LOAD_COMPILED_PATH" prefix
+                                             (,(string-append #$output go))))))
+                                     (list "scm2rsv" "rsv2scm"))))))))
+      (synopsis "Reading and writing @acronym{RSV, rows of string values} data 
format")
+      (description
+       "R7RS-small Scheme library for reading and writing @acronym{RSV, rows
+of string values} data format, a very simple binary format for storing tables
+of strings.  It is a competitor for CSV (Comma Seperated Values) and TSV (Tab
+Separated Values).  Its main benefit is that the strings are represented as
+Unicode encoded as UTF-8, and the value and row separators are byte values
+that are never used in UTF-8, so the strings do not need any error prone
+escaping and thus can be written and read verbatim.
+
+The RSV format is specified in
+@url{https://github.com/Stenway/RSV-Specification}.";)
+      (license license:gpl3+))))
+
 (define-public guile-r6rs-protobuf
   (package
     (name "guile-r6rs-protobuf")

Reply via email to