aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Hogan <code@greghogan.com>2024-10-22 17:21:10 +0000
committerSharlatan Hellseher <sharlatanus@gmail.com>2024-11-03 23:33:39 +0000
commitccf4a0fa2d9baae29541dbf149b3b8c0144ee0da (patch)
tree320142f954764d12a3119da8fdfde63a5b0185c0
parentd33626fb07e5a8369b1be1dff87f399be90d85d4 (diff)
downloadguix-ccf4a0fa2d9baae29541dbf149b3b8c0144ee0da.tar.gz
guix-ccf4a0fa2d9baae29541dbf149b3b8c0144ee0da.zip
gnu: Add git-extras.
* gnu/packages/version-control.scm (git-extras): New variable. Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com> Change-Id: I0246227b48a5550e0ee1aecf31f1b9c786f6bd9f
-rw-r--r--gnu/packages/version-control.scm78
1 files changed, 78 insertions, 0 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index dfc455ad88..a15f274c37 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -112,6 +112,7 @@
#: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)
@@ -128,6 +129,7 @@
#: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 libbsd)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
@@ -150,6 +152,7 @@
#: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)
@@ -4273,6 +4276,81 @@ Git project instead of @command{git filter-branch}.")
commit messages for style.")
(license license:expat)))
+(define-public git-extras
+ (package
+ (name "git-extras")
+ (version "7.3.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 "1lig1sbk83qqvbvpmpcjaf23nk0r7snny5lix75ym1z320970xni"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ ;; XXX: Tests require additional setup with Pytest, see
+ ;; <.github/workflows/ci.yml>.
+ #:tests? #f
+ #: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)
+ ;; Write to and copy from temporary file to prevent
+ ;; "make: bash: Argument list too long" errors.
+ (let* ((temp-file (mkstemp! "temp-file.XXXXXX"))
+ (temp-filename (port-filename temp-file)))
+ (map (lambda (name)
+ (format temp-file "export PATH=$PATH:~a/bin~%"
+ (assoc-ref inputs name)))
+ (list "coreutils-minimal"
+ "curl"
+ "findutils"
+ "gawk"
+ "less"
+ "ncurses"
+ "procps"
+ "rsync"
+ "sed"
+ "util-linux"))
+ ;; 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"
+ "cat " temp-filename " >> $(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")