@@ 22,6 22,7 @@
(define-module (guixrus packages misc)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
@@ 40,6 41,8 @@
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages lisp)
#:use-module (gnu packages pcre)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
@@ 1317,6 1320,53 @@ mouse hovers a specific date. Else, it shows the event for the current week.")
the fretboard.")
(license license:expat))))
+(define-public jpm
+ (package
+ (name "jpm")
+ (version "1.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/janet-lang/jpm")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "05rdxigmiy7vf93s16a8n2029lq33073jccz1rjl4iisxj6piw4l"))
+ (snippet
+ '(begin
+ ;; Delete configs for other operating systems.
+ (for-each delete-file '("configs/bsd_config.janet"
+ "configs/linux_config.janet"
+ "configs/macos_config.janet"
+ "configs/msvc_config.janet"
+ "configs/msvc_config.jdn"))))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ #;(add-after 'unpack 'patch-config-file
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((prefix (assoc-ref outputs "out")))
+ (substitute* "configs/linux_config.janet"
+ (("/usr/local") prefix)
+ ((":auto-shebang true") ":auto-shebang false")))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((store (assoc-ref outputs "out")))
+ (setenv "PREFIX=" store)
+ (setenv "DESTDIR=" store)
+ (invoke "janet"
+ "bootstrap.janet")))))))
+ (native-inputs
+ (list pkg-config))
+ (inputs
+ (list git curl janet))
+ (home-page "https://github.com/janet-lang/jpm")
+ (synopsis "Janet Project Manager")
+ (description "@code{jpm} is the Janet Project Manager tool.")
+ (license license:expat)))
+
(define-public dateparse
(let ((commit "069050d60bf6ee06f89414539a0a802f77e22340")
(revision "0"))