commit 2722b53b556b6d7514f77f2a53ae1660c1e727ce
parent ed2b9ec803fa6b815f8c3baaaea7386b1520d443
Author: Yuval Langer <yuval.langer@gmail.com>
Date: Mon, 11 Dec 2023 00:14:43 +0200
Add guile-srfi-232 for the SRFI-232 module. It omits testing and documentation.
Diffstat:
1 file changed, 112 insertions(+), 61 deletions(-)
diff --git a/kakafarm/packages/guile-xyz.scm b/kakafarm/packages/guile-xyz.scm
@@ -16,69 +16,120 @@
(define-public guile-clipboard-speaker
(let ((git-repository-url "https://codeberg.org/kakafarm/guile-clipboard-speaker/"))
(package
- (name "guile-clipboard-speaker")
- (version "0.1")
- (source
- (origin
- (uri (git-reference
- (url git-repository-url)
- (commit "8b493f674c1f42c480c582d10cd50bdae0926555")))
- (method git-fetch)
- (file-name (git-file-name name version))
- (sha256 (base32 "0ll75spzzmsvc57y4rnd0il7zvlai4q3imva4ildf66gghflhqf5"))))
- (native-inputs
- (list guile-3.0))
- (inputs
- (list bash
- coreutils
- xsel
- guile-3.0
- guile-config
- guile-srfi-145
- guile-srfi-180
- espeak-ng))
- (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"))
- (script (string-append bin "/clipboard-speaker"))
- (site-version (target-guile-effective-version))
- (scm (string-append "/share/guile/site/"
- site-version))
- (go (string-append "/lib/guile/"
- site-version
- "/site-ccache"))
- (guile-config #$(this-package-input "guile-config"))
- (guile-srfi-145 #$(this-package-input "guile-srfi-145"))
- (guile-srfi-180 #$(this-package-input "guile-srfi-180")))
- (mkdir-p bin)
- (symlink (string-append #$output scm "/clipboard-speaker.scm")
- script)
- (wrap-program script #:sh (which "bash")
- `("GUILE_LOAD_PATH" prefix
- (,(string-append #$output scm)
- ,(string-append guile-config scm)
- ,(string-append guile-srfi-145 scm)
- ,(string-append guile-srfi-180 scm)))
- `("GUILE_LOAD_COMPILED_PATH" prefix
- (,(string-append #$output go)
- ,(string-append guile-config go)
- ,(string-append guile-srfi-145 go)
- ,(string-append guile-srfi-180 go))))))))))
- (home-page git-repository-url)
- (synopsis "Accessibility tool that reads the contents of your clipboard buffer")
- (description "This package installs the clipboard-speaker executable.
+ (name "guile-clipboard-speaker")
+ (version "0.1")
+ (source
+ (origin
+ (uri (git-reference
+ (url git-repository-url)
+ (commit "8b493f674c1f42c480c582d10cd50bdae0926555")))
+ (method git-fetch)
+ (file-name (git-file-name name version))
+ (sha256 (base32 "0ll75spzzmsvc57y4rnd0il7zvlai4q3imva4ildf66gghflhqf5"))))
+ (native-inputs
+ (list guile-3.0))
+ (inputs
+ (list bash
+ coreutils
+ xsel
+ guile-3.0
+ guile-config
+ guile-srfi-145
+ guile-srfi-180
+ espeak-ng))
+ (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"))
+ (script (string-append bin "/clipboard-speaker"))
+ (site-version (target-guile-effective-version))
+ (scm (string-append "/share/guile/site/"
+ site-version))
+ (go (string-append "/lib/guile/"
+ site-version
+ "/site-ccache"))
+ (guile-config #$(this-package-input "guile-config"))
+ (guile-srfi-145 #$(this-package-input "guile-srfi-145"))
+ (guile-srfi-180 #$(this-package-input "guile-srfi-180")))
+ (mkdir-p bin)
+ (symlink (string-append #$output scm "/clipboard-speaker.scm")
+ script)
+ (wrap-program script #:sh (which "bash")
+ `("GUILE_LOAD_PATH" prefix
+ (,(string-append #$output scm)
+ ,(string-append guile-config scm)
+ ,(string-append guile-srfi-145 scm)
+ ,(string-append guile-srfi-180 scm)))
+ `("GUILE_LOAD_COMPILED_PATH" prefix
+ (,(string-append #$output go)
+ ,(string-append guile-config go)
+ ,(string-append guile-srfi-145 go)
+ ,(string-append guile-srfi-180 go))))))))))
+ (home-page git-repository-url)
+ (synopsis "Accessibility tool that reads the contents of your clipboard buffer")
+ (description "This package installs the clipboard-speaker executable.
An accessibility tool that reads the contents of the clipboard. I can
read the current selection or the clipboard. Select a bunch of text,
press a keybinding / shortcut you've set in the windows manager, and
clipboard-speaker would read that aloud.")
- (license license:agpl3+))))
+ (license license:agpl3+))))
+
+(define-public guile-srfi-232
+ (package
+ (name "guile-srfi-232")
+ (version "0.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/scheme-requests-for-implementation/srfi-232")
+ (commit "c3f580d220778cd71492aba4fdd0c7040968e705")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0lp4zcqjjj6hwfh3ix71wak1nffgg4npzsg7cdxfn9hf6iwf9xby"))))
+ (build-system guile-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases
+ %standard-phases
+ (add-after 'unpack 'move-and-delete-things
+ (lambda _
+ (let* ((srfi-directory (string-append #$output "/srfi")))
+ (mkdir-p "srfi")
+ (with-output-to-file "srfi/srfi-232.scm"
+ (lambda ()
+ (display "(define-library (srfi srfi-232)
+ (export curried define-curried)
+ (import (only (guile) import)
+ (scheme base))
+ (include \"../srfi-232.scm\"))")))
+ (for-each (lambda (filename)
+ (delete-file filename))
+ '("test-body.scm"
+ "test-chibi.scm"
+ "test-srfi-64.scm"))))))))
+ (native-inputs
+ (list guile-3.0))
+ (home-page "https://github.com/scheme-requests-for-implementation/srfi-232")
+ (synopsis "Flexible curried procedures")
+ (description
+ "Scheme lacks a flexible way to create and apply curried
+procedures. This SRFI describes curried, a variant of lambda that
+creates true curried procedures which also behave just like ordinary
+Scheme procedures. They can be applied to their arguments one by one,
+all at once, or anywhere in between, without any novel syntax.
+curried also supports nullary and variadic procedures, and procedures
+created with it have predictable behavior when applied to surplus
+arguments.")
+ (license license:expat)))
-;; This allows you to run guix shell -f example.scm.
-;; Remove this line if you just want to define a package.
-guile-clipboard-speaker
+;;; This allows you to run guix shell -f example.scm.
+;;; Remove this line if you just want to define a package.
+;;;guile-clipboard-speaker