requireFile: Make more flexible

Shea Levy e987d1c1 957390ec

+17 -7
+17 -7
pkgs/build-support/trivial-builders.nix
··· 88 (lib.concatMapStrings (x: "ln -s '${x.path}' '${x.name}';\n") entries)); 89 90 # Require file 91 - requireFile = {name, sha256, url ? null, message ? null} : 92 assert (message != null) || (url != null); 93 let msg = 94 if message != null then message 95 else '' 96 - Unfortunately, we may not download file ${name} automatically. 97 Please, go to ${url}, download it yourself, and add it to the Nix store 98 using either 99 - nix-store --add-fixed sha256 ${name} 100 or 101 - nix-prefetch-url file://path/to/${name} 102 ''; 103 in 104 stdenv.mkDerivation { 105 - inherit name; 106 - outputHashAlgo = "sha256"; 107 - outputHash = sha256; 108 builder = writeScript "restrict-message" '' 109 source ${stdenv}/setup 110 cat <<_EOF_
··· 88 (lib.concatMapStrings (x: "ln -s '${x.path}' '${x.name}';\n") entries)); 89 90 # Require file 91 + requireFile = { name ? null 92 + , sha256 ? null 93 + , sha1 ? null 94 + , url ? null 95 + , message ? null 96 + } : 97 assert (message != null) || (url != null); 98 + assert (sha256 != null) || (sha1 != null); 99 + assert (name != null) || (url != null); 100 let msg = 101 if message != null then message 102 else '' 103 + Unfortunately, we may not download file ${name_} automatically. 104 Please, go to ${url}, download it yourself, and add it to the Nix store 105 using either 106 + nix-store --add-fixed ${hashAlgo} ${name_} 107 or 108 + nix-prefetch-url --type ${hashAlgo} file://path/to/${name_} 109 ''; 110 + hashAlgo = if sha256 != null then "sha256" else "sha1"; 111 + hash = if sha256 != null then sha256 else sha1; 112 + name_ = if name == null then baseNameOf (toString url) else name; 113 in 114 stdenv.mkDerivation { 115 + name = name_; 116 + outputHashAlgo = hashAlgo; 117 + outputHash = hash; 118 builder = writeScript "restrict-message" '' 119 source ${stdenv}/setup 120 cat <<_EOF_