tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
requireFile: Make more flexible
Shea Levy
10 years ago
e987d1c1
957390ec
+17
-7
1 changed file
expand all
collapse all
unified
split
pkgs
build-support
trivial-builders.nix
+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} :
0
0
0
0
0
92
assert (message != null) || (url != null);
0
0
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
'';
0
0
0
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_