base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12 (#356361)
[NixPkgs.git] / pkgs / tools / package-management / nix-pin / default.nix
blob59422ff22cc2466cbf824e859e6cadc19fe4e6aa
1 { lib, pkgs, stdenv, fetchFromGitHub, python3, nix, git, makeWrapper
2 , runtimeShell }:
3 let self = stdenv.mkDerivation rec {
4   pname = "nix-pin";
5   version = "0.4.0";
6   src = fetchFromGitHub {
7     owner = "timbertson";
8     repo = "nix-pin";
9     rev = "version-${version}";
10     sha256 = "1pccvc0iqapms7kidrh09g5fdx44x622r5l9k7bkmssp3v4c68vy";
11   };
12   nativeBuildInputs = [ makeWrapper ];
13   buildInputs = [ python3 ];
14   installPhase = ''
15     mkdir "$out"
16     cp -r bin share "$out"
17     wrapProgram $out/bin/nix-pin \
18       --prefix PATH : "${lib.makeBinPath [ nix git ]}"
19   '';
20   passthru =
21     let
22       defaults = import "${self}/share/nix/defaults.nix";
23     in {
24       api = { pinConfig ? defaults.pinConfig }:
25         let impl = import "${self}/share/nix/api.nix" { inherit pkgs pinConfig; }; in
26         { inherit (impl) augmentedPkgs pins callPackage; };
27       updateScript = ''
28         #!${runtimeShell}
29         set -e
30         echo
31         cd ${toString ./.}
32         ${pkgs.nix-update-source}/bin/nix-update-source \
33           --prompt version \
34           --replace-attr version \
35           --set owner timbertson \
36           --set repo nix-pin \
37           --set type fetchFromGitHub \
38           --set rev 'version-{version}' \
39           --substitute rev 'version-''${{version}}' \
40           --modify-nix default.nix
41       '';
42     };
43   meta = with lib; {
44     homepage = "https://github.com/timbertson/nix-pin";
45     description = "nixpkgs development utility";
46     license = licenses.mit;
47     maintainers = [ maintainers.timbertson ];
48     platforms = platforms.all;
49     mainProgram = "nix-pin";
50   };
51 }; in self