about summary refs log tree commit diff
path: root/pkgs/applications/virtualization/crosvm
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2022-04-03 11:57:13 +0000
committerAlyssa Ross <hi@alyssa.is>2022-04-13 08:20:32 +0000
commit26d66fbfa9bad792b9d8d629808f544f2d21d84e (patch)
treeed09434d986df6679f3f6f089442a80a4420b6d7 /pkgs/applications/virtualization/crosvm
parentfd3f39303b4f3831747f6cdf7409915fec77446a (diff)
crosvm.updateScript: generate Cargo.lock
Diffstat (limited to 'pkgs/applications/virtualization/crosvm')
-rw-r--r--pkgs/applications/virtualization/crosvm/generate-cargo.sh7
-rwxr-xr-xpkgs/applications/virtualization/crosvm/update.py12
2 files changed, 17 insertions, 2 deletions
diff --git a/pkgs/applications/virtualization/crosvm/generate-cargo.sh b/pkgs/applications/virtualization/crosvm/generate-cargo.sh
new file mode 100644
index 0000000000000..216cafe367ca1
--- /dev/null
+++ b/pkgs/applications/virtualization/crosvm/generate-cargo.sh
@@ -0,0 +1,7 @@
+dir="$(mktemp -d)" &&
+    cd "$dir" &&
+    unpackPhase &&
+    cd "${sourceRoot:-}" &&
+    cargo generate-lockfile &&
+    mv Cargo.lock "$1"
+rm -rf "$dir"
diff --git a/pkgs/applications/virtualization/crosvm/update.py b/pkgs/applications/virtualization/crosvm/update.py
index 6e36e524b78d1..f9fc90c6b349b 100755
--- a/pkgs/applications/virtualization/crosvm/update.py
+++ b/pkgs/applications/virtualization/crosvm/update.py
@@ -5,9 +5,10 @@
 import base64
 import json
 import re
+import shlex
 import subprocess
 from codecs import iterdecode
-from os.path import dirname, splitext
+from os.path import abspath, dirname, splitext
 from lxml import etree
 from lxml.etree import HTMLParser
 from urllib.request import urlopen
@@ -78,7 +79,14 @@ argv = ['nix-instantiate', '--eval', '--json', '-A', 'crosvm.meta.position']
 position = json.loads(subprocess.check_output(argv).decode('utf-8'))
 filename = re.match(r'[^:]*', position)[0]
 
-# Finally, write the output.
+# Write the output.
 with open(dirname(filename) + '/upstream-info.json', 'w') as out:
     json.dump(data, out, indent=2)
     out.write('\n')
+
+# Generate a Cargo.lock
+run = ['.',
+       dirname(abspath(__file__)) + '/generate-cargo.sh',
+       dirname(filename) + '/Cargo.lock']
+expr = '(import ./. {}).crosvm.overrideAttrs (_: { dontCargoSetupPostUnpack = true; })'
+subprocess.run(['nix-shell', '-E', expr, '--run', shlex.join(run)])