@@ -104,6 +104,7 @@ (define-module (gnu packages version-control)
#:use-module (gnu packages file)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
@@ -120,6 +121,7 @@ (define-module (gnu packages version-control)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages less)
#:use-module (gnu packages linux)
#:use-module (gnu packages mail)
#:use-module (gnu packages man)
@@ -140,6 +142,7 @@ (define-module (gnu packages version-control)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages rsync)
#:use-module (gnu packages ruby)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages texinfo)
@@ -3971,6 +3974,75 @@ (define-public gitlint
commit messages for style.")
(license license:expat)))
+(define-public git-extras
+ (package
+ (name "git-extras")
+ (version "7.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tj/git-extras")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zvmc8rrrmfn0wv603l0ql7h00mdknqvh6dnb86xhi6kfl018mbv"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:make-flags
+ #~(list (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; No configure script, build process, or tests.
+ (delete 'bootstrap)
+ (delete 'configure)
+ (delete 'build)
+ (delete 'check)
+ (add-after 'unpack 'hardcode-dependency-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The Makefile injects helper scripts and functions into each
+ ;; script. This substitution injects a PATH appending the bin
+ ;; directory of each non-propagated input in order to minimize
+ ;; the number of packages propagated to the profile.
+ (substitute* "Makefile"
+ (("head -1 bin/\\$\\(COMMAND\\) > \\$\\(TEMPFILE\\); \\\\" line)
+ (string-append
+ line "\n"
+ "echo 'PATH=$$PATH:"
+ (string-join
+ (map (lambda (name) (assoc-ref inputs name))
+ (list "coreutils-minimal"
+ "curl"
+ "findutils"
+ "gawk"
+ "less"
+ "ncurses"
+ "procps"
+ "rsync"
+ "sed"
+ "util-linux"))
+ "/bin:")
+ "' >> $(TEMPFILE); \\"))))))))
+ (propagated-inputs (list git))
+ (inputs
+ (list coreutils-minimal
+ curl
+ findutils
+ gawk
+ less
+ ncurses
+ procps
+ rsync
+ sed
+ util-linux))
+ (home-page "https://github.com/tj/git-extras")
+ (synopsis "Additional Git utilities")
+ (description "The git-extras package provides a collection of additional
+git commands for repository metrics and summarization, commit and log editing,
+developer workflow, and project and release management.")
+ (license license:expat)))
+
(define-public hut
(package
(name "hut")