biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / package-management / nix-update-source / default.nix
blob9b21c1514046fe1a9079c32d10009aa930118d93
1 { lib, pkgs, fetchFromGitHub, python3Packages, nix-prefetch-scripts, runtimeShell }:
3 python3Packages.buildPythonApplication rec {
4   pname = "nix-update-source";
5   version = "0.7.0";
7   src = fetchFromGitHub {
8     hash = "sha256-+49Yb+rZ3CzFnwEpwj5xrcMUVBiYOJtCk9YeZ15IM/U=";
9     owner = "timbertson";
10     repo = "nix-update-source";
11     rev = "version-${version}";
12   };
14   propagatedBuildInputs = [ nix-prefetch-scripts ];
16   doCheck = false;
18   passthru = {
19     # NOTE: `fetch` should not be used within nixpkgs because it
20     # uses a non-idiomatic structure. It is provided for use by
21     # out-of-tree nix derivations.
22     fetch = path:
23       let
24         fetchers = {
25           # whitelist of allowed fetchers
26           inherit (pkgs) fetchgit fetchurl fetchFromGitHub;
27         };
28         json = lib.importJSON path;
29         fetchFn = builtins.getAttr json.fetch.fn fetchers;
30         src = fetchFn json.fetch.args;
31       in
32       json // json.fetch // {
33         inherit src;
34         overrideSrc = drv: lib.overrideDerivation drv (orig: { inherit src; });
35       };
38     updateScript = [
39       runtimeShell
40       "-c"
41       ''
42         set -e
43         echo
44         cd ${toString ./.}
45         ${pkgs.nix-update-source}/bin/nix-update-source \
46           --prompt version \
47           --replace-attr version \
48           --set owner timbertson \
49           --set repo nix-update-source \
50           --set type fetchFromGitHub \
51           --set rev 'version-{version}' \
52           --nix-literal rev 'version-''${version}'\
53           --modify-nix default.nix
54       ''
55     ];
56   };
58   meta = {
59     homepage = "https://github.com/timbertson/nix-update-source";
60     description = "Utility to automate updating of nix derivation sources";
61     maintainers = with lib.maintainers; [ timbertson ];
62     license = lib.licenses.mit;
63     mainProgram = "nix-update-source";
64   };