@@ -30,10 +30,14 @@ rec {
30
30
, src
31
31
, cargoToml ? "Cargo.toml"
32
32
, additionalCargoNixArgs ? [ ]
33
+ , overrideLockFile ? null
33
34
} :
34
35
let
35
36
crateDir = dirOf ( src + "/${ cargoToml } " ) ;
36
- vendor = internal . vendorSupport { inherit crateDir ; } ;
37
+ vendor = internal . vendorSupport {
38
+ inherit crateDir ;
39
+ additionalLockFiles = if overrideLockFile == null then [ ] else [ overrideLockFile ] ;
40
+ } ;
37
41
in
38
42
stdenv . mkDerivation {
39
43
name = "${ name } -crate2nix" ;
52
56
export CARGO_HOME="$out/cargo"
53
57
export HOME="$out"
54
58
59
+ ${ if overrideLockFile == null then
60
+ ""
61
+ else
62
+ "cp ${ overrideLockFile } ./Cargo.lock" }
63
+
55
64
cp ${ vendor . cargoConfig } $out/cargo/config
56
65
57
66
crate_hashes="$out/crate-hashes.json"
@@ -176,7 +185,7 @@ rec {
176
185
rev = lib . last splitQuestion ;
177
186
} ;
178
187
179
- vendorSupport = { crateDir ? ./. , ... } :
188
+ vendorSupport = { crateDir ? ./. , additionalLockFiles ? [ ] , ... } :
180
189
rec {
181
190
toPackageId = { name , version , source , ... } :
182
191
"${ name } ${ version } (${ source } )" ;
@@ -198,7 +207,7 @@ rec {
198
207
builtins . map toLockFile subdirs
199
208
else [ ] ;
200
209
in
201
- fromCrateDir ++ fromSources ;
210
+ fromCrateDir ++ fromSources ++ additionalLockFiles ;
202
211
203
212
locked =
204
213
let
0 commit comments