2023-08-02 23:40:33 +02:00
|
|
|
(use-modules (gnu packages haskell-xyz)
|
|
|
|
(gnu packages haskell-web)
|
|
|
|
(guix build-system haskell)
|
|
|
|
(guix download)
|
|
|
|
(guix gexp)
|
|
|
|
(guix git-download)
|
|
|
|
(guix licenses)
|
|
|
|
(guix packages)
|
|
|
|
(loom packages sjw))
|
|
|
|
|
|
|
|
(let
|
|
|
|
((%source-dir (dirname (current-filename)))
|
|
|
|
(ghc-template (load "ghc-template.scm")))
|
|
|
|
(package
|
|
|
|
(name "hablo")
|
|
|
|
(version "devel")
|
|
|
|
(source
|
|
|
|
(local-file %source-dir
|
|
|
|
#:recursive? #t
|
|
|
|
#:select? (git-predicate %source-dir)))
|
|
|
|
(build-system haskell-build-system)
|
|
|
|
(inputs
|
|
|
|
(list ghc-aeson
|
|
|
|
ghc-attoparsec
|
|
|
|
ghc-lucid
|
|
|
|
ghc-optparse-applicative
|
|
|
|
ghc-parsec
|
|
|
|
ghc-random
|
|
|
|
ghc-sjw
|
|
|
|
ghc-template
|
|
|
|
ghc-xdg-basedir))
|
2023-08-04 10:39:57 +02:00
|
|
|
(arguments
|
|
|
|
`(#:phases
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
(insert-after 'install 'copy-static-resources
|
|
|
|
(lambda* #:key outputs #:allow-other-keys
|
|
|
|
(let ((out (assoc-ref outputs "out")))
|
|
|
|
(copy-recursively "share" (string-append out "/share/hablo"))))))))
|
2023-08-02 23:40:33 +02:00
|
|
|
(native-search-paths
|
|
|
|
(list
|
|
|
|
(search-path-specification (variable "SJW_PATH")
|
2023-08-04 10:39:57 +02:00
|
|
|
(files '("lib/SJW")))
|
|
|
|
(search-path-specification (variable "XDG_DATA_DIRS")
|
|
|
|
(files '("share")))))
|
2023-08-02 23:40:33 +02:00
|
|
|
(home-page "https://git.marvid.fr/Tissevert/SJW")
|
|
|
|
(synopsis "The Simple Javascript Wrench")
|
|
|
|
(description
|
|
|
|
"SJW is a very simple tool to pack several JS modules into a single
|
|
|
|
script. It doesn't really do proper compilation work (yet) except
|
|
|
|
resolving the modules dependencies and detecting import loops but it
|
|
|
|
provides each module with an independent execution context in the
|
|
|
|
resulting script.")
|
|
|
|
(license gpl3+)))
|