diff --git a/modules/radix/packages/guile-xyz.scm b/modules/radix/packages/guile-xyz.scm new file mode 100644 index 0000000..1981f1b --- /dev/null +++ b/modules/radix/packages/guile-xyz.scm @@ -0,0 +1,73 @@ +(define-module (packages guile) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (gnu packages guile) + #:use-module (guix build-system guile) + #:use-module (guix build-system trivial) + #:use-module ((guix licenses) #:prefix license:)) + +;; This srfi was originally packaged by Nikita Domnitskii on +;; https://git.sr.ht/~krevedkokun/dotfiles/tree/master/item/channel/packages/guile.scm +(define-public guile-srfi-197 + (let ((commit "78ced23a1af519ee2969939138b3ffff442f339a") + (revision "0")) + (package + (name "guile-srfi-197") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ar-nelson/srfi-197") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19kh6zwad6bmhj0wabgbsbkk8l48s6lrgn701afjaab2w0gb30qg")) + (snippet + #~(begin + (use-modules (ice-9 rdelim) + (ice-9 pretty-print) + (guix build utils)) + (call-with-input-file "srfi-197-syntax-case.scm" + (lambda (input-port) + (with-output-to-file "tmp.scm" + (lambda () + (pretty-print + '(define-module (srfi srfi-197) + #:use-module (rnrs base) + #:use-module (rnrs io ports) + #:use-module (rnrs syntax-case) + #:export (chain + chain-when + chain-and + chain-lambda + nest + nest-reverse))) + (newline) + (let loop () + (let ((line (read-line input-port))) + (unless (eof-object? line) + (write-line line) + (loop)))))))) + (mkdir "srfi") + (rename-file "tmp.scm" "srfi/srfi-197.scm") + (for-each delete-file + '("srfi-197-syntax-case.scm" + "srfi-197.scm" + "srfi-197.sld" + "srfi-64-minimal.scm" + "test-kawa.scm" + "test-r6rs.scm" + "test-r7rs.scm" + "test.scm")))))) + (build-system guile-build-system) + (inputs + (list guile-3.0)) + (home-page "https://github.com/ar-nelson/srfi-197") + (synopsis "SRFI 197 pipeline operators port for Guile") + (description + "This package provides an implementation of SRFI 197 for Guile. +SRFI 197 defines a large set of clojure-like threading macros for +representing nested data structures and code in a more readable way.") + (license license:expat))))