aboutsummaryrefslogtreecommitdiff
(define-module (gn packages shell)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages)
  #:use-module (gnu packages base)
  #:use-module (guix git-download)
  #:use-module ((guix licenses) #:prefix license:)
  )

(define-public shunit2
  (let ((commit "60dd60bcd1573befe38465010263ab242e55811d"))
    (package
      (name "shunit2")
      (version (string-append "2.0.4-" (string-take commit 7)))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/kward/shunit2.git")
                      (commit commit)))
                (file-name (string-append name "-" version "-checkout"))
                (sha256
                 (base32 "11savxc6qliqv25kv59qak6j7syjv95hbpmq1szn1mzn32g2gc25"))))
    (inputs `(
              ("coreutils" ,coreutils) ; for mktemp and od
              ))
      (build-system gnu-build-system)
      (arguments
       `(
         #:tests? #f ;; no test-suite
         #:phases
         (modify-phases %standard-phases
           (delete 'configure)
           (delete 'build)
           (add-after 'unpack 'replace-binary-paths
                      (lambda _
                        (substitute* "source/2.0/src/shell/shunit2"
                                     (("/bin/sh") (which "sh"))
                                     (("exec mktemp") (string-append "exec " (which "mktemp")))
                                     (("/usr/bin/od") (which "od"))
                                     )#t))

           (replace 'install
             (lambda* (#:key outputs #:allow-other-keys)
               (let* ((out (assoc-ref outputs "out"))
                      (bin (string-append out "/bin"))
                      (shunit2-exec (string-append bin "/shunit2")))
                 (write (file-exists? "source/2.0/src/shell/shunit2"))
                 (write (format #t "build directory: ~s~%" (getcwd)))
                 (mkdir-p bin)
                 (copy-file "source/2.0/src/shell/shunit2" shunit2-exec)
                 (chmod shunit2-exec #o555)
                 #t))))
         ))
      (home-page "https://code.google.com/archive/p/shunit2/")
      (synopsis "xUnit based unit testing for Unix shell scripts")
      (description
       "shUnit2 is a xUnit unit test framework for Bourne based shell
scripts, and it is designed to work in a similar manner to JUnit,
PyUnit, etc. If you have ever had the desire to write a unit test for
a shell script, shUnit2 can do the job.")
      (license license:lgpl2.0))))