summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorGreg Hogan <code@greghogan.com>2024-01-30 20:08:06 +0000
committerLudovic Courtès <ludo@gnu.org>2024-02-18 16:09:38 +0100
commitbb317f46fca962b58e9e81e646e53ee651fd8d83 (patch)
treebfec9a57e6f1390a730d70364dd010d725c222f3 /gnu/packages
parentb177e753bbf22c7003b17b916fd61c640952ebb2 (diff)
gnu: Add git-sizer.
* gnu/packages/version-control.scm (git-sizer): New variable. Change-Id: I82a61e364782dabfd59d0e81ff310fa916b5ff23 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/version-control.scm50
1 files changed, 50 insertions, 0 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 51754245d3..afef900bbb 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -4001,3 +4001,53 @@ file into Darcs, Git, Mercurial, Bazaar, Subversion, or CVS repositories. It
comes as a command line app and also an Emacs interface.")
(home-page "https://porkrind.org/commit-patch/")
(license license:gpl2+)))
+
+(define-public git-sizer
+ (package
+ (name "git-sizer")
+ (version "1.5.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/github/git-sizer")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1b4sl4djnfaxwph41y4bh9yal4bpd1nz4403ryp7nzna7h2x0zis"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/github/git-sizer"
+ #:install-source? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* '("src/github.com/github/git-sizer/git_sizer_test.go")
+ (("bin/git-sizer")
+ (string-append (assoc-ref outputs "out")
+ "/bin/git-sizer")))))
+ (replace 'check
+ (lambda* (#:key tests? import-path #:allow-other-keys)
+ (when tests?
+ (for-each (lambda (test)
+ (invoke "go" "test" "-v" "-run" test import-path))
+ ;; TestExec and TestSubmodule require a copy of the
+ ;; Git repository.
+ '("TestBomb" "TestFromSubdir" "TestRefgroups"
+ "TestRefSelections" "TestTaggedTags"))))))))
+ (native-inputs (list git))
+ (propagated-inputs
+ (list go-github-com-cli-safeexec
+ go-github-com-davecgh-go-spew
+ go-github-com-pmezard-go-difflib
+ go-github-com-spf13-pflag
+ go-github-com-stretchr-testify
+ go-go-uber-org-goleak
+ go-golang-org-x-sync
+ go-gopkg-in-yaml-v3))
+ (home-page "https://github.com/github/git-sizer")
+ (synopsis "Analyze size of a Git repo")
+ (description "Compute various size metrics for a Git repository, flagging
+those that might cause problems or inconvenience.")
+ (license license:expat)))