hellerve / sbcli

A REPL for my SBCL needs
GNU General Public License v3.0
94 stars 13 forks source link

Guix package #30

Open jgarte opened 1 year ago

jgarte commented 1 year ago

This is a TODO for myself to package sbcli for GNU Guix.

Blocked by: #28 and #29

jgarte commented 1 year ago
(define-public sbcl-sbcli
  (let ((commit "04af2d30886705626c2e45bd8f334a6aeb49a63f")
        (revision "0"))
    (package
      (name "sbcl-sbcli")
      (version "0.0.2")
      (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/jgarte/sbcli")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
           (base32 "06vk451ng48y8a7nxnr9livjis470mnk44yr9kza07dd2mzhaz1j"))))
      (build-system asdf-build-system/source) ; FIXME?
      (arguments
        `(#:phases
          (modify-phases %standard-phases
            (replace 'build
              (lambda* (#:key outputs #:allow-other-keys)
                (setenv "HOME" (getcwd))
                (system*
                 "sbcl" "--no-userinit"
                 "--eval" "(require :asdf)"
                 "--eval" (string-append
                           "(require :sbcli \""
                           (getcwd) "/sbcli.asd\")")
                 "--eval" "(asdf:make :sbcli)")
                (install-file (string-append (getcwd) "/repl")
                              (string-append (assoc-ref outputs "out") "/bin"))))
            (delete 'check)
            (delete 'create-asdf-configuration))))
      (inputs
        (list sbcl-alexandria
              sbcl-cl-readline
              sbcl-cl-str))
      (home-page "https://github.com/hellerve/sbcli")
      (synopsis "REPL for my SBCL needs")
      (description
  "A better REPL for SBCL. 
  sbcli handles errors gracefully, is not too verbose, has readline capabilities, 
  including multiline input and reset, and has optional syntax highlighting 
  capabilities using pygmentize.")
      (license license:gpl3+))))