[PATCH] gnu: Add bats.

  • Done
  • quality assurance status badge
Details
2 participants
  • Oleg Pykhalov
  • Mathieu Othacehe
Owner
unassigned
Submitted by
Oleg Pykhalov
Severity
normal
O
O
Oleg Pykhalov wrote on 7 Jun 2020 20:23
(address . guix-patches@gnu.org)(name . Oleg Pykhalov)(address . go.wigust@gmail.com)
20200607182350.32447-1-go.wigust@gmail.com
* gnu/packages/bash.scm (bats): New variable.
---
gnu/packages/bash.scm | 52 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)

Toggle diff (83 lines)
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index 3ba8a13e40..dff3fcb594 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,6 +25,7 @@
(define-module (gnu packages bash)
#:use-module (guix licenses)
#:use-module (gnu packages)
+ #:use-module (gnu packages base)
#:use-module (gnu packages bootstrap)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages readline)
@@ -37,6 +39,7 @@
#:use-module (guix monads)
#:use-module (guix store)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system trivial)
#:autoload (guix gnupg) (gnupg-verify*)
#:autoload (guix base32) (bytevector->nix-base32-string)
@@ -362,3 +365,52 @@ for Bash shell scripts and functions. Along with the Test::More-style testing
helpers it provides helper functions for mocking commands and in-process output
capturing.")
(license expat)))
+
+(define-public bats
+ (package
+ (name "bats")
+ (version "1.2.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bats-core/bats-core.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0f59zh4d4pa1a7ybs5zl6h0csbqqv11lbnq0jl1dgwm1s6p49bsq"))))
+ (inputs
+ `(("bash" ,bash)
+ ("coreutils" ,coreutils)
+ ("grep" ,grep)))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (copy-recursively (assoc-ref %build-inputs "source") ".")
+ (setenv "PATH"
+ (string-append (assoc-ref %build-inputs "bash") "/bin"
+ ":" (assoc-ref %build-inputs "coreutils") "/bin"
+ ":" (assoc-ref %build-inputs "grep") "/bin"
+ ":" (getenv "PATH")))
+ ;; Patch phase
+ (substitute* "install.sh"
+ (("/usr/bin/env bash") (which "bash")))
+ (substitute* "libexec/bats-core/bats"
+ (("type -p greadlink readlink")
+ (string-append "type -p " (which "readlink"))))
+ (substitute* "libexec/bats-core/bats"
+ (("grep") (which "grep")))
+ ;; Install phase
+ (invoke "./install.sh" %output))))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "BATS_ROOT")
+ (separator #f) ;single entry
+ (files '("libexec/bats-core")))))
+ (build-system trivial-build-system)
+ (home-page "https://github.com/bats-core/bats-core/")
+ (synopsis "Bash Automated Testing System")
+ (description "This package provides a Bash Automated Testing System.")
+ (license expat)))
--
2.26.2
M
M
Mathieu Othacehe wrote on 14 Jun 2020 12:15
(name . Oleg Pykhalov)(address . go.wigust@gmail.com)(address . 41751@debbugs.gnu.org)
87bllmkl67.fsf@gnu.org
Hello Oleg,

Toggle quote (6 lines)
> + (native-search-paths
> + (list (search-path-specification
> + (variable "BATS_ROOT")
> + (separator #f) ;single entry
> + (files '("libexec/bats-core")))))

Why not patching "bats" script directly? This way we wouldn't need an
extra environment variable to run "bats".

Toggle quote (2 lines)
> + (description "This package provides a Bash Automated Testing System.")

It would be good to elaborate a bit on that, what can be tested exactly,
how to use it.

Otherwise, this looks fine.

Thanks,

Mathieu
O
O
Oleg Pykhalov wrote on 25 Jul 2020 21:14
(address . 41751-done@debbugs.gnu.org)
878sf7l84u.fsf@gmail.com
All suggestions were applied and pushed in master in
5a88d3dfcb382a9256e5b6d18f1487b597260944.

Closing.
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEcjhxI46s62NFSFhXFn+OpQAa+pwFAl8chJEACgkQFn+OpQAa
+pyQMRAAq89NHuPVDteo6gebiN/7ZQmKfaATB7xg51cgIDvjfEo2Hav7Xn0Oxept
0N5hxB/JJf6jcDrC1VrvkHqFW9yagcbcCfcgXxUp33jY0qUUMAqhB0h+lDAIVZcj
LwzwsZWwKYx01MVE3TcfR5ubNeriMWQCce9PdkvA0s8Z7P73d5xYsdxeCW4XcWbo
ZI03X2UowEdakAHi9i3qlNYSOsRh/rI9cm3szQb4FblQm+CPamgwuJHjvyVXmB3R
EcPJ+8XyKaUtDQKExTfFoJcnaLlN90rYMVHa9/dGnZ9A0DZNsQKur6RTiZ0Mq8tW
0nXDXLT2HE7t1H0M+Xv+z61hiJhP6iytsuxwRayR3j96scBEnUgZjYsLdZwUR/i0
l2XPQHQ6YT2RtwnWu4LuATZd5lirAgi+dzyz+BAKvr1aWweVxlcV5DtRT73Fwpfu
5ybVkOnENVzWplo8J3mi6NWa1jNdb60QRfygkEWGavxuO8/vn34726bUnFoPZ+Wk
6GDOUJBsARXBJT9XrHdjiYC1wikBRjhGmM84QJFf6kEVTAjimWiYCmPAY9rrsgfs
WdRC0nudS6V6tT1sIaYs2CGdrkcOsbxHpH5HgvOSAcOKtT+sbQf8RMigb+M/x6/l
fap5OE3xVITBgUpWGzXAcGXU5eywEFQIHYWIA2hVV/nuRX+g38A=
=GEiJ
-----END PGP SIGNATURE-----

Closed
?