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>
This commit is contained in:
Greg Hogan 2024-01-30 20:08:06 +00:00 committed by Ludovic Courtès
parent b177e753bb
commit bb317f46fc
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -4001,3 +4001,53 @@ (define-public commit-patch
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)))