diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/version-management/git-and-tools/git-vendor/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/version-management/git-and-tools/git-vendor/default.nix | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-vendor/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-vendor/default.nix new file mode 100644 index 000000000000..c7884c2b52e7 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-vendor/default.nix @@ -0,0 +1,66 @@ +{ lib, stdenv, fetchFromGitHub, writeShellScriptBin, skawarePackages +}: + +let + version = "1.2.1"; + sha256 = "sha256-sm5SmckaXVjF3odqzYrbC46E1nPzQ9cuNJnNSAa7RWY="; + +in stdenv.mkDerivation { + pname = "git-vendor"; + inherit version; + + src = fetchFromGitHub { + owner = "brettlangdon"; + repo = "git-vendor"; + rev = "v${version}"; + inherit sha256; + }; + + outputs = [ "bin" "man" "doc" "out" ]; + + PREFIX = (placeholder "out"); + BINPREFIX = "${placeholder "bin"}/bin"; + MANPREFIX = "${placeholder "man"}/share/man/man1"; + + buildInputs = [ + # stubbing out a `git config` check that `make install` tries to do + (writeShellScriptBin "git" "") + ]; + + postInstall = '' + ${skawarePackages.cleanPackaging.commonFileActions { + docFiles = [ + "LICENSE" + "README.md" + ]; + noiseFiles = [ + "bin/git-vendor" + "Makefile" + "etc/bash_completion.sh" + "man" + "install.sh" + ]; + }} $doc/share/doc/git-vendor + ''; + + postFixup = '' + ${skawarePackages.cleanPackaging.checkForRemainingFiles} + ''; + + meta = { + description = "A git command for managing vendored dependencies"; + longDescription = '' + git-vendor is a wrapper around git-subtree commands for checking out and updating vendored dependencies. + + By default git-vendor conforms to the pattern used for vendoring golang dependencies: + * Dependencies are stored under vendor/ directory in the repo. + * Dependencies are stored under the fully qualified project path. + e.g. https://github.com/brettlangdon/forge will be stored under vendor/github.com/brettlangdon/forge. + ''; + homepage = "https://github.com/brettlangdon/git-vendor"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.Profpatsch ]; + platforms = lib.platforms.all; + }; + +} |