Subject: [PATCH 24/24]: gnu: just: New package.

From: Jean Pierre De Jesus DIAZ <[email-masked]>
Date: Wed, 20 Jul 2022 12:22:33 +0000

Empty Message

From 3d3f6255beada8cb6b0e78cd43657de9367ba687 Mon Sep 17 00:00:00 2001
From: Jean-Pierre De Jesus DIAZ <[email-masked]>
Date: Sun, 17 Jul 2022 22:50:12 +0200
Subject: [PATCH 24/24] gnu: just: New package.

* gnu/packages/rust-apps.scm (just): New variable.
---
 gnu/packages/rust-apps.scm | 100 +++++++++++++++++++++++++++++++++++++
 1 file changed, 100 insertions(+)

diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 0d5034ffb7..91ec6908e8 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -16,6 +16,7 @@
 ;;; Copyright © 2021 jgart <[email-masked]>
 ;;; Copyright © 2021 Nicolas Graves <[email-masked]>
 ;;; Copyright © 2022 Aleksandr Vityazev <[email-masked]>
+;;; Copyright © 2022 Jean-Pierre De Jesus DIAZ <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -612,6 +613,105 @@ (define-public hyperfine
      "This package provides a command-line benchmarking tool.")
     (license (list license:expat license:asl2.0))))
 
+(define-public just
+  (package
+    (name "just")
+    (version "1.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "just" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1x762kq9mdp86fbnymn77mvdabcyvp211bkbvawnzm8fspp8a3g2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--"
+         "--skip=choose::status_error"
+         "--skip=edit::editor_working_directory"
+         "--skip=edit::status_error"
+         "--skip=export::setting_shebang"
+         "--skip=export::shebang"
+         "--skip=justfile::tests::run_shebang"
+         "--skip=functions::env_var_functions"
+         "--skip=functions::path_functions"
+         "--skip=functions::path_functions2"
+         "--skip=misc::quiet_shebang_recipe"
+         "--skip=misc::shebang_line_numbers"
+         "--skip=positional_arguments::shebang"
+         "--skip=positional_arguments::variadic_shebang"
+         "--skip=quiet::choose_status"
+         "--skip=quiet::quiet_shebang"
+         "--skip=shell::flag"
+         "--skip=working_directory::change_working_directory_to_search_justfile_parent"
+         "--skip=working_directory::justfile_and_working_directory"
+         "--skip=working_directory::justfile_without_working_directory"
+         "--skip=working_directory::justfile_without_working_directory_relative"
+         "--skip=working_directory::search_dir_child"
+         "--skip=working_directory::search_dir_parent")
+       #:install-source? #f
+       #:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.12)
+        ("rust-atty" ,rust-atty-0.2)
+        ("rust-camino" ,rust-camino-1)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-ctrlc" ,rust-ctrlc-3)
+        ("rust-derivative" ,rust-derivative-2)
+        ("rust-dotenv" ,rust-dotenv-0.15)
+        ("rust-edit-distance" ,rust-edit-distance-2)
+        ("rust-env-logger" ,rust-env-logger-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-lexiclean" ,rust-lexiclean-0.0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-sha2" ,rust-sha2-0.10)
+        ("rust-similar" ,rust-similar-2)
+        ("rust-snafu" ,rust-snafu-0.7)
+        ("rust-strum" ,rust-strum-0.24)
+        ("rust-target" ,rust-target-2)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-typed-arena" ,rust-typed-arena-2)
+        ("rust-unicode-width" ,rust-unicode-width-0.1)
+        ("rust-uuid" ,rust-uuid-1))
+       #:cargo-development-inputs
+       (("rust-cradle" ,rust-cradle-0.2)
+        ("rust-executable-path" ,rust-executable-path-1)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-1)
+        ("rust-temptree" ,rust-temptree-0.2)
+        ("rust-which" ,rust-which-4)
+        ("rust-yaml-rust" ,rust-yaml-rust-0.4))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-extra
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out   (assoc-ref outputs "out"))
+                    (share (string-append out "/share"))
+                    (man1  (string-append share "/man/man1"))
+                    (bash  (string-append out "/etc/bash_completions.d"))
+                    (fish  (string-append share "/fish/vendor_completions.d"))
+                    (zsh   (string-append share "/zsh/site-functions")))
+               (install-file "man/just.1" man1)
+               (mkdir-p bash)
+               (mkdir-p zsh)
+               (mkdir-p fish)
+               (copy-file "completions/just.bash" (string-append bash "/just"))
+               (copy-file "completions/just.zsh" (string-append zsh "/_just"))
+               (copy-file "completions/just.fish"
+                          (string-append fish "/just.fish"))))))))
+    (home-page "https://just.systems/")
+    (synopsis "Command runner")
+    (description "Just is a command runner.
+
+It provides a handy way to save and run project-specific commands.
+
+Commands, called recipes, are stored in a file called @code{justfile} with
+syntax inspired by @code{make}.")
+    (license license:cc0)))
+
 (define-public i3status-rust
   (package
     (name "i3status-rust")
-- 
2.36.1