diff options
author | GenericNerdyUsername <genericnerdyusername@proton.me> | 2023-04-22 16:02:34 +0100 |
---|---|---|
committer | GenericNerdyUsername <genericnerdyusername@proton.me> | 2023-04-22 16:02:34 +0100 |
commit | 3687bee81c0c06f06c3aa0b112232a6e1dac4623 (patch) | |
tree | 439ef9a9ee703d343b39631b0cf4aed5063a3d41 /pkgs/build-support | |
parent | 088941cc9d28f96e86f9afb164a17b1346634f32 (diff) |
requireFile: allow using `hash` instead of `sha256`/`sha1`
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/trivial-builders.nix | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix index 8694c602a3b91..e90d0a6d20229 100644 --- a/pkgs/build-support/trivial-builders.nix +++ b/pkgs/build-support/trivial-builders.nix @@ -785,12 +785,13 @@ rec { requireFile = { name ? null , sha256 ? null , sha1 ? null + , hash ? null , url ? null , message ? null , hashMode ? "flat" } : assert (message != null) || (url != null); - assert (sha256 != null) || (sha1 != null); + assert (sha256 != null) || (sha1 != null) || (hash != null); assert (name != null) || (url != null); let msg = if message != null then message @@ -802,15 +803,19 @@ rec { or nix-prefetch-url --type ${hashAlgo} file:///path/to/${name_} ''; - hashAlgo = if sha256 != null then "sha256" else "sha1"; - hash = if sha256 != null then sha256 else sha1; + hashAlgo = if hash != null then "" + else if sha256 != null then "sha256" + else "sha1"; + hash_ = if hash != null then hash + else if sha256 != null then sha256 + else sha1; name_ = if name == null then baseNameOf (toString url) else name; in stdenvNoCC.mkDerivation { name = name_; outputHashMode = hashMode; outputHashAlgo = hashAlgo; - outputHash = hash; + outputHash = hash_; preferLocalBuild = true; allowSubstitutes = false; builder = writeScript "restrict-message" '' |