[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#50793] [PATCH 1/2] gnu: Add JSON.sh
From: |
Sarah Morgensen |
Subject: |
[bug#50793] [PATCH 1/2] gnu: Add JSON.sh |
Date: |
Fri, 24 Sep 2021 19:58:44 -0700 |
Hi,
Thanks for the patches! Just a couple quick comments:
Stephen Paul Weber <singpolyma@singpolyma.net> writes:
> * gnu/packages/serialization.scm (JSON.sh): New variable.
> ---
> gnu/packages/serialization.scm | 45 ++++++++++++++++++++++++++++++++++
> 1 file changed, 45 insertions(+)
>
> diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
> index 196141ace8..f5677d9e5f 100644
> --- a/gnu/packages/serialization.scm
> +++ b/gnu/packages/serialization.scm
> @@ -34,10 +34,13 @@
> #:use-module (guix git-download)
> #:use-module (guix utils)
> #:use-module (guix build-system cmake)
> + #:use-module (guix build-system copy)
> #:use-module (guix build-system gnu)
> #:use-module (guix build-system python)
> #:use-module (gnu packages)
> #:use-module (gnu packages autotools)
> + #:use-module (gnu packages base)
> + #:use-module (gnu packages bash)
> #:use-module (gnu packages boost)
> #:use-module (gnu packages check)
> #:use-module (gnu packages compression)
> @@ -458,6 +461,48 @@ it a convenient format to store user input files.")
> (base32
> "1180ln8blrb0mwzpcf78k49hlki6di65q77rsvglf83kfcyh4d7z"))))))
>
> +(define-public JSON.sh
> + (package
> + (name "JSON.sh")
I can't find a rule for this per se, but it's convention that package
names to be lowercase (and for the variable name to match).
> + (version "0d5e5c7")
Since this isn't a tagged version, this should follow the 'git-version'
pattern (search for usages of 'git-version' for examples).
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/dominictarr/JSON.sh")
> + (commit version)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "14lxvp5xbdk0dcwkjbdp098z1108j8z48zaibndh4i731kkcz43i"))))
> + (build-system copy-build-system)
> + (arguments
> + `(#:install-plan '(("JSON.sh" "bin/"))
> + #:phases
> + (modify-phases %standard-phases
> + (add-before 'install 'check
> + (lambda _
> + (invoke "./all-tests.sh")
> + #t))
Check phases should respect #:tests?, like so:
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
[...]))
Also, it doesn't hurt, but phases no longer have to end in #t. :)
> + (add-after 'install 'wrap-program
> + (lambda* (#:key inputs outputs #:allow-other-keys)
> + (wrap-program (string-append (assoc-ref outputs "out")
> "/bin/JSON.sh")
> + `("PATH" ":" prefix
> + (,(string-join
> + (map (lambda (in) (string-append (assoc-ref inputs in)
> "/bin"))
> + '("grep" "coreutils"))
Does this script actually use coreutils? On the other hand, it looks
like it does use gawk and sed.
> + ":")))))))))
> + (inputs
> + `(("bash-minimal" ,bash-minimal)
> + ("grep" ,grep)
> + ("coreutils" ,coreutils)))
> + (synopsis
> + "Pipeable JSON parser written in shell")
> + (description
> + "JSON parser written in shell, compatible with ash, bash, dash and
> zsh")
This is a bit nit-picky since it's just a dependency, but descriptions
should use full sentences, and be a bit more descriptive than this (see
"Synopses and Descriptions" in the Guix manual).
> + (home-page "https://github.com/dominictarr/JSON.sh")
> + (license license:asl2.0)))
This is actually dual-licensed with expat, so:
(license (list license:expat license:asl2.0))
Could you please send an updated patch?
--
Sarah
[bug#50793] [PATCH v2 1/2] gnu: Add JSON.sh, Stephen Paul Weber, 2021/09/25
[bug#50793] [PATCH v3 1/2] gnu: Add JSON.sh, Stephen Paul Weber, 2021/09/26