ops/nixos/lib: inline latest_system_closure.sh

I can't be bothered to make it a proper script, and I also don't really want to
rely on invoking nix-shell at runtime (I'd rather have all the needed tools in
the system closure).
This commit is contained in:
Luke Granger-Brown 2021-04-04 19:35:38 +01:00
parent 8dab1a04fe
commit d582d3f352
2 changed files with 7 additions and 13 deletions

View file

@ -1,11 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p bash jq curl unzip
set -euo pipefail
tmpdir="$(mktemp -d)"
trap '{ rm -rf -- "$tmpdir"; }' EXIT
curl -so "$tmpdir/archive.zip" 'https://hg.lukegb.com/api/v4/projects/lukegb%2Fdepot/jobs/artifacts/branch%2Fdefault/download?job=nixCache'
unzip -d "$tmpdir" -q -o "$tmpdir/archive.zip"
jq -r ".\"$(hostname)\"" "$tmpdir/systems.json"

View file

@ -11,7 +11,12 @@ pkgs.writeShellScriptBin "switch-prebuilt" ''
system="''${1}"
if [[ "$system" == "latest" ]]; then
system="$(${./latest_system_closure.sh})"
tmpdir="$(mktemp -d)"
trap '{ rm -rf -- "$tmpdir"; }' EXIT
${pkgs.curl}/bin/curl -so "$tmpdir/archive.zip" 'https://hg.lukegb.com/api/v4/projects/lukegb%2Fdepot/jobs/artifacts/branch%2Fdefault/download?job=nixCache'
${pkgs.unzip}/bin/unzip -d "$tmpdir" -q -o "$tmpdir/archive.zip"
system="$(${pkgs.jq}/bin/jq -r ".\"$(hostname)\"" "$tmpdir/systems.json")"
fi
if [[ ! -e "$system" ]]; then
@ -23,7 +28,7 @@ pkgs.writeShellScriptBin "switch-prebuilt" ''
# The next phase requires sudo, but it's harmless to run the preceding commands twice.
if [[ $EUID -ne 0 ]]; then
exec sudo "$0" "$@"
exec sudo "$0" "$system"
fi
nix-env -p /nix/var/nix/profiles/system --set "$system"