python312Packages.types-aiobotocore: 2.15.2 -> 2.15.2.post3 (#361801)
[NixPkgs.git] / pkgs / by-name / gi / git-get / package.nix
blob8e6bea06ab7f288fc8d2956daebf207852fe732b
1 { lib, fetchFromGitHub, buildGoModule }:
3 let config-module = "git-get/pkg/cfg";
4 in
5 buildGoModule rec {
6   pname = "git-get";
7   version = "0.5.0";
9   src = fetchFromGitHub {
10     owner = "grdl";
11     repo = pname;
12     rev = "v${version}";
13     hash = "sha256-v98Ff7io7j1LLzciHNWJBU3LcdSr+lhwYrvON7QjyCI=";
14     # populate values that require us to use git. By doing this in postFetch we
15     # can delete .git afterwards and maintain better reproducibility of the src.
16     leaveDotGit = true;
17     postFetch = ''
18       git -C $out rev-parse HEAD > $out/COMMIT
19       # in format of 0000-00-00T00:00:00Z
20       date -u -d "@$(git -C $out log -1 --pretty=%ct)" "+%Y-%m-%dT%H:%M:%SZ" > $out/SOURCE_DATE_EPOCH
21       find "$out" -name .git -print0 | xargs -0 rm -rf
22     '';
23   };
25   vendorHash = "sha256-C+XOjMDMFneKJNeBh0KWPx8yM7XiiIpTlc2daSfhZhY=";
27   doCheck = false;
29   # ldflags based on metadata from git and source
30   preBuild = ''
31     ldflags+=" -X ${config-module}.commit=$(cat COMMIT)"
32     ldflags+=" -X ${config-module}.date=$(cat SOURCE_DATE_EPOCH)"
33   '';
35   ldflags = [
36     "-s"
37     "-w"
38     "-X ${config-module}.version=v${version}"
39   ];
41   preInstall = ''
42     mv "$GOPATH/bin/get" "$GOPATH/bin/git-get"
43     mv "$GOPATH/bin/list" "$GOPATH/bin/git-list"
44   '';
46   meta = with lib; {
47     description = "Better way to clone, organize and manage multiple git repositories";
48     homepage = "https://github.com/grdl/git-get";
49     license = licenses.mit;
50     maintainers = with maintainers; [ sumnerevans ];
51   };