From 695e095d44f512000feee06c462c57750ba629ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sun, 4 Dec 2022 07:48:45 +0100 Subject: [PATCH] Format, move overlay to overlays to match ~/.config/nixpkgs/overlays/ --- flake.nix | 2 +- .../allcolors-cargo-update.patch | 0 {overlay => overlays}/bmxd.nix | 0 {overlay => overlays}/default.nix | 22 +- .../dump1090-influxdb/Gemfile | 0 .../dump1090-influxdb/Gemfile.lock | 0 .../dump1090-influxdb/default.nix | 0 .../dump1090-influxdb/gemset.nix | 12 +- .../dump1090-influxdb/main.rb | 0 {overlay => overlays}/dump1090_rs.nix | 6 +- {overlay => overlays}/mlat-client.nix | 0 {overlay => overlays}/pi-sensors/Cargo.lock | 0 {overlay => overlays}/pi-sensors/Cargo.toml | 0 {overlay => overlays}/pi-sensors/default.nix | 0 {overlay => overlays}/pi-sensors/src/dht.rs | 0 {overlay => overlays}/pi-sensors/src/main.rs | 0 .../pi-sensors/src/open_pin.rs | 0 {overlay => overlays}/pile.nix | 0 .../plume/0001-cargo-update.patch | 0 {overlay => overlays}/plume/default.nix | 31 +- {overlay => overlays}/readsb.nix | 25 +- {overlay => overlays}/simpleygggen.nix | 0 {overlay => overlays}/vector/default.nix | 2 +- packages.nix | 520 +++++++++--------- 24 files changed, 332 insertions(+), 288 deletions(-) rename {overlay => overlays}/allcolors-cargo-update.patch (100%) rename {overlay => overlays}/bmxd.nix (100%) rename {overlay => overlays}/default.nix (91%) rename {overlay => overlays}/dump1090-influxdb/Gemfile (100%) rename {overlay => overlays}/dump1090-influxdb/Gemfile.lock (100%) rename {overlay => overlays}/dump1090-influxdb/default.nix (100%) rename {overlay => overlays}/dump1090-influxdb/gemset.nix (63%) rename {overlay => overlays}/dump1090-influxdb/main.rb (100%) rename {overlay => overlays}/dump1090_rs.nix (89%) rename {overlay => overlays}/mlat-client.nix (100%) rename {overlay => overlays}/pi-sensors/Cargo.lock (100%) rename {overlay => overlays}/pi-sensors/Cargo.toml (100%) rename {overlay => overlays}/pi-sensors/default.nix (100%) rename {overlay => overlays}/pi-sensors/src/dht.rs (100%) rename {overlay => overlays}/pi-sensors/src/main.rs (100%) rename {overlay => overlays}/pi-sensors/src/open_pin.rs (100%) rename {overlay => overlays}/pile.nix (100%) rename {overlay => overlays}/plume/0001-cargo-update.patch (100%) rename {overlay => overlays}/plume/default.nix (91%) rename {overlay => overlays}/readsb.nix (73%) rename {overlay => overlays}/simpleygggen.nix (100%) rename {overlay => overlays}/vector/default.nix (98%) diff --git a/flake.nix b/flake.nix index 186b5d93..7fbb644e 100644 --- a/flake.nix +++ b/flake.nix @@ -202,7 +202,7 @@ extraHostRegistry.hosts = import ./host-registry.nix; hostRegistry = lib.recursiveUpdate zwHostRegistry extraHostRegistry; in { - overlay = import ./overlay { + overlay = import ./overlays { inherit nixos-unstable; inherit (inputs) tracer bevy-mandelbrot bevy-julia; }; diff --git a/overlay/allcolors-cargo-update.patch b/overlays/allcolors-cargo-update.patch similarity index 100% rename from overlay/allcolors-cargo-update.patch rename to overlays/allcolors-cargo-update.patch diff --git a/overlay/bmxd.nix b/overlays/bmxd.nix similarity index 100% rename from overlay/bmxd.nix rename to overlays/bmxd.nix diff --git a/overlay/default.nix b/overlays/default.nix similarity index 91% rename from overlay/default.nix rename to overlays/default.nix index 25a2afb6..c358a542 100644 --- a/overlay/default.nix +++ b/overlays/default.nix @@ -33,12 +33,14 @@ with final; { postFixup = '' patchelf --set-rpath ${lib.makeLibraryPath buildInputs} $out/bin/allcolors-rs ''; - desktopItems = [ (makeDesktopItem { - name = "allcolors"; - desktopName = "Polygon's allcolors-rs"; - categories = [ "Game" ]; - exec = "allcolors-rs"; - }) ]; + desktopItems = [ + (makeDesktopItem { + name = "allcolors"; + desktopName = "Polygon's allcolors-rs"; + categories = [ "Game" ]; + exec = "allcolors-rs"; + }) + ]; }; inherit (bevy-julia.packages.${system}) bevy_julia; @@ -123,10 +125,10 @@ with final; { broken = true; reason = "haddock runs on affection for 10 hours and more"; in - if broken - then throw "tracer-game: ${reason}" - else tracer.packages.${system}.tracer-game; + if broken + then throw "tracer-game: ${reason}" + else tracer.packages.${system}.tracer-game; # vector-0.23 + mqtt-sink - vector = pkgs-unstable.callPackage ./vector {}; + vector = pkgs-unstable.callPackage ./vector { }; } diff --git a/overlay/dump1090-influxdb/Gemfile b/overlays/dump1090-influxdb/Gemfile similarity index 100% rename from overlay/dump1090-influxdb/Gemfile rename to overlays/dump1090-influxdb/Gemfile diff --git a/overlay/dump1090-influxdb/Gemfile.lock b/overlays/dump1090-influxdb/Gemfile.lock similarity index 100% rename from overlay/dump1090-influxdb/Gemfile.lock rename to overlays/dump1090-influxdb/Gemfile.lock diff --git a/overlay/dump1090-influxdb/default.nix b/overlays/dump1090-influxdb/default.nix similarity index 100% rename from overlay/dump1090-influxdb/default.nix rename to overlays/dump1090-influxdb/default.nix diff --git a/overlay/dump1090-influxdb/gemset.nix b/overlays/dump1090-influxdb/gemset.nix similarity index 63% rename from overlay/dump1090-influxdb/gemset.nix rename to overlays/dump1090-influxdb/gemset.nix index d9b0f3af..11502705 100644 --- a/overlay/dump1090-influxdb/gemset.nix +++ b/overlays/dump1090-influxdb/gemset.nix @@ -1,19 +1,19 @@ { gis-distance = { - groups = ["default"]; - platforms = []; + groups = [ "default" ]; + platforms = [ ]; source = { - remotes = ["https://rubygems.org"]; + remotes = [ "https://rubygems.org" ]; sha256 = "1kgv1scv25b65d9xfricj1ayd2iry7imgk7qw4mryd91mhriibaf"; type = "gem"; }; version = "1.1.0"; }; influxdb = { - groups = ["default"]; - platforms = []; + groups = [ "default" ]; + platforms = [ ]; source = { - remotes = ["https://rubygems.org"]; + remotes = [ "https://rubygems.org" ]; sha256 = "1l2sjf8kaw3adjjg3l7zg1j735yxdfldf04gl9kjc3hbpdcd7d4w"; type = "gem"; }; diff --git a/overlay/dump1090-influxdb/main.rb b/overlays/dump1090-influxdb/main.rb similarity index 100% rename from overlay/dump1090-influxdb/main.rb rename to overlays/dump1090-influxdb/main.rb diff --git a/overlay/dump1090_rs.nix b/overlays/dump1090_rs.nix similarity index 89% rename from overlay/dump1090_rs.nix rename to overlays/dump1090_rs.nix index 3b2ea3f4..cfd704cb 100644 --- a/overlay/dump1090_rs.nix +++ b/overlays/dump1090_rs.nix @@ -1,5 +1,7 @@ -{ fetchFromGitHub, rustPlatform -, pkg-config, llvmPackages +{ fetchFromGitHub +, rustPlatform +, pkg-config +, llvmPackages , soapysdr-with-plugins }: diff --git a/overlay/mlat-client.nix b/overlays/mlat-client.nix similarity index 100% rename from overlay/mlat-client.nix rename to overlays/mlat-client.nix diff --git a/overlay/pi-sensors/Cargo.lock b/overlays/pi-sensors/Cargo.lock similarity index 100% rename from overlay/pi-sensors/Cargo.lock rename to overlays/pi-sensors/Cargo.lock diff --git a/overlay/pi-sensors/Cargo.toml b/overlays/pi-sensors/Cargo.toml similarity index 100% rename from overlay/pi-sensors/Cargo.toml rename to overlays/pi-sensors/Cargo.toml diff --git a/overlay/pi-sensors/default.nix b/overlays/pi-sensors/default.nix similarity index 100% rename from overlay/pi-sensors/default.nix rename to overlays/pi-sensors/default.nix diff --git a/overlay/pi-sensors/src/dht.rs b/overlays/pi-sensors/src/dht.rs similarity index 100% rename from overlay/pi-sensors/src/dht.rs rename to overlays/pi-sensors/src/dht.rs diff --git a/overlay/pi-sensors/src/main.rs b/overlays/pi-sensors/src/main.rs similarity index 100% rename from overlay/pi-sensors/src/main.rs rename to overlays/pi-sensors/src/main.rs diff --git a/overlay/pi-sensors/src/open_pin.rs b/overlays/pi-sensors/src/open_pin.rs similarity index 100% rename from overlay/pi-sensors/src/open_pin.rs rename to overlays/pi-sensors/src/open_pin.rs diff --git a/overlay/pile.nix b/overlays/pile.nix similarity index 100% rename from overlay/pile.nix rename to overlays/pile.nix diff --git a/overlay/plume/0001-cargo-update.patch b/overlays/plume/0001-cargo-update.patch similarity index 100% rename from overlay/plume/0001-cargo-update.patch rename to overlays/plume/0001-cargo-update.patch diff --git a/overlay/plume/default.nix b/overlays/plume/default.nix similarity index 91% rename from overlay/plume/default.nix rename to overlays/plume/default.nix index c07463c3..ad4ce17c 100644 --- a/overlay/plume/default.nix +++ b/overlays/plume/default.nix @@ -1,8 +1,18 @@ -{ naersk, fenix -, curl, nodejs, rustPlatform -, stdenv, fetchFromGitHub, buildEnv, fetchCrate -, pkg-config, gettext, wasm-pack, binaryen -, openssl, postgresql +{ naersk +, fenix +, curl +, nodejs +, rustPlatform +, stdenv +, fetchFromGitHub +, buildEnv +, fetchCrate +, pkg-config +, gettext +, wasm-pack +, binaryen +, openssl +, postgresql }: let @@ -80,7 +90,8 @@ let inherit src version; nativeBuildInputs = [ - pkg-config gettext + pkg-config + gettext wasm-bindgen-cli ]; buildInputs = [ @@ -115,7 +126,10 @@ let pname = "plume-front"; root = src; nativeBuildInputs = [ - gettext wasm-pack wasm-bindgen-cli binaryen + gettext + wasm-pack + wasm-bindgen-cli + binaryen ]; CARGO_BUILD_TARGET = "wasm32-unknown-unknown"; cargoBuildOptions = x: @@ -133,7 +147,8 @@ let ''; }; }; -in buildEnv { +in +buildEnv { name = "plume-env"; paths = [ plume plume-front plm ]; passthru = { inherit plume plm; }; diff --git a/overlay/readsb.nix b/overlays/readsb.nix similarity index 73% rename from overlay/readsb.nix rename to overlays/readsb.nix index 15bb96a9..97cb74f3 100644 --- a/overlay/readsb.nix +++ b/overlays/readsb.nix @@ -1,8 +1,13 @@ -{ stdenv, fetchFromGitHub -, pkg-config, protobufc -, ncurses, rrdtool, libusb1 -, libbladeRF, librtlsdr -# , libad9361, libiio +{ stdenv +, fetchFromGitHub +, pkg-config +, protobufc +, ncurses +, rrdtool +, libusb1 +, libbladeRF +, librtlsdr + # , libad9361, libiio }: stdenv.mkDerivation rec { pname = "readsb-protobuf"; @@ -17,12 +22,16 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ - pkg-config protobufc + pkg-config + protobufc ]; buildInputs = [ - ncurses rrdtool libusb1 - libbladeRF librtlsdr + ncurses + rrdtool + libusb1 + libbladeRF + librtlsdr # libad9361 libiio ]; diff --git a/overlay/simpleygggen.nix b/overlays/simpleygggen.nix similarity index 100% rename from overlay/simpleygggen.nix rename to overlays/simpleygggen.nix diff --git a/overlay/vector/default.nix b/overlays/vector/default.nix similarity index 98% rename from overlay/vector/default.nix rename to overlays/vector/default.nix index d9a9e21e..376d13fc 100644 --- a/overlay/vector/default.nix +++ b/overlays/vector/default.nix @@ -51,7 +51,7 @@ rustPlatform.buildRustPackage { TZDIR = "${tzdata}/share/zoneinfo"; # needed to dynamically link rdkafka - CARGO_FEATURE_DYNAMIC_LINKING=1; + CARGO_FEATURE_DYNAMIC_LINKING = 1; buildNoDefaultFeatures = true; buildFeatures = features; diff --git a/packages.nix b/packages.nix index 7b16d037..83f9d90b 100644 --- a/packages.nix +++ b/packages.nix @@ -5,301 +5,317 @@ let let hostConf = hostRegistry.hosts."${name}"; in - if hostConf ? ip4 - then hostConf.ip4 - else if hostConf ? ip6 - then hostConf.ip6 - else throw "Host ${name} has no ip4 or ip6 address"; + if hostConf ? ip4 + then hostConf.ip4 + else if hostConf ? ip6 + then hostConf.ip6 + else throw "Host ${name} has no ip4 or ip6 address"; # all the input flakes for `nix copy` to the build machine, # allowing --override-input inputPaths = lib.escapeShellArgs (builtins.attrValues inputs); in -lib.attrsets.mapAttrs (system: pkgs: - let overlayPkgs = builtins.intersectAttrs (self.overlay {} {}) pkgs; - in overlayPkgs // - { - host-registry = pkgs.runCommand "host-registry" { - src = builtins.toFile "host-registry.nix" ( - lib.generators.toPretty {} hostRegistry - ); - } '' - ln -s $src $out - ''; +lib.attrsets.mapAttrs + (system: pkgs: + let + overlayPkgs = builtins.intersectAttrs (self.overlay { } { }) pkgs; + in + overlayPkgs // + { + host-registry = pkgs.runCommand "host-registry" + { + src = builtins.toFile "host-registry.nix" ( + lib.generators.toPretty { } hostRegistry + ); + } + '' + ln -s $src $out + ''; - list-upgradable = pkgs.writeScriptBin "list-upgradable" '' - #! ${pkgs.runtimeShell} + list-upgradable = pkgs.writeScriptBin "list-upgradable" '' + #! ${pkgs.runtimeShell} - NORMAL="\033[0m" - RED="\033[0;31m" - YELLOW="\033[0;33m" - GREEN="\033[0;32m" + NORMAL="\033[0m" + RED="\033[0;31m" + YELLOW="\033[0;33m" + GREEN="\033[0;32m" - ${pkgs.lib.concatMapStringsSep "\n" (name: - let - addr = getHostAddr name; - in lib.optionalString (addr != null) '' - echo -n -e "${name}: $RED" - RUNNING=$(ssh -o PreferredAuthentications=publickey -o StrictHostKeyChecking=accept-new root@"${addr}" "readlink /run/current-system") - if [ $? = 0 ] && [ -n "$RUNNING" ]; then - CURRENT=$(nix eval --raw ".#nixosConfigurations.${name}.config.system.build.toplevel" 2>/dev/null) - RUNNING_VER=$(basename $RUNNING|rev|cut -d - -f 1|rev) - RUNNING_DATE=$(echo $RUNNING_VER|cut -d . -f 3) - CURRENT_VER=$(basename $CURRENT|rev|cut -d - -f 1|rev) - CURRENT_DATE=$(echo $CURRENT_VER|cut -d . -f 3) + ${pkgs.lib.concatMapStringsSep "\n" (name: + let + addr = getHostAddr name; + in lib.optionalString (addr != null) '' + echo -n -e "${name}: $RED" + RUNNING=$(ssh -o PreferredAuthentications=publickey -o StrictHostKeyChecking=accept-new root@"${addr}" "readlink /run/current-system") + if [ $? = 0 ] && [ -n "$RUNNING" ]; then + CURRENT=$(nix eval --raw ".#nixosConfigurations.${name}.config.system.build.toplevel" 2>/dev/null) + RUNNING_VER=$(basename $RUNNING|rev|cut -d - -f 1|rev) + RUNNING_DATE=$(echo $RUNNING_VER|cut -d . -f 3) + CURRENT_VER=$(basename $CURRENT|rev|cut -d - -f 1|rev) + CURRENT_DATE=$(echo $CURRENT_VER|cut -d . -f 3) - if [ "$RUNNING" = "$CURRENT" ]; then - echo -e "$GREEN"current"$NORMAL $RUNNING_VER" - elif [ $RUNNING_DATE -gt $CURRENT_DATE ]; then - echo -e "$GREEN"newer"$NORMAL $RUNNING_VER > $CURRENT_VER" - elif [ "$RUNNING_VER" = "$CURRENT_VER" ]; then - echo -e "$YELLOW"modified"$NORMAL $RUNNING_VER" - elif [ -n "$RUNNING_VER" ]; then - echo -e "$RED"outdated"$NORMAL $RUNNING_VER < $CURRENT_VER" - else - echo -e "$RED"error"$NORMAL $RUNNING_VER" - fi - fi - echo -n -e "$NORMAL" - '') (builtins.attrNames self.nixosConfigurations)} - ''; + if [ "$RUNNING" = "$CURRENT" ]; then + echo -e "$GREEN"current"$NORMAL $RUNNING_VER" + elif [ $RUNNING_DATE -gt $CURRENT_DATE ]; then + echo -e "$GREEN"newer"$NORMAL $RUNNING_VER > $CURRENT_VER" + elif [ "$RUNNING_VER" = "$CURRENT_VER" ]; then + echo -e "$YELLOW"modified"$NORMAL $RUNNING_VER" + elif [ -n "$RUNNING_VER" ]; then + echo -e "$RED"outdated"$NORMAL $RUNNING_VER < $CURRENT_VER" + else + echo -e "$RED"error"$NORMAL $RUNNING_VER" + fi + fi + echo -n -e "$NORMAL" + '') (builtins.attrNames self.nixosConfigurations)} + ''; - prebuild-all = pkgs.runCommand "prebuild-all" { - preferLocalBuild = true; - } '' - mkdir $out + prebuild-all = pkgs.runCommand "prebuild-all" + { + preferLocalBuild = true; + } + '' + mkdir $out - ${pkgs.lib.concatMapStrings (name: '' - ln -s ${self.nixosConfigurations."${name}".config.system.build.toplevel} name - '') (builtins.attrNames self.nixosConfigurations)} - ''; + ${pkgs.lib.concatMapStrings (name: '' + ln -s ${self.nixosConfigurations."${name}".config.system.build.toplevel} name + '') (builtins.attrNames self.nixosConfigurations)} + ''; - prebuild-all-remote = pkgs.writeScriptBin "prebuild-all" '' - #!${pkgs.runtimeShell} -e + prebuild-all-remote = pkgs.writeScriptBin "prebuild-all" '' + #!${pkgs.runtimeShell} -e - nix copy --no-check-sigs --to ssh-ng://$1 ${inputPaths} + nix copy --no-check-sigs --to ssh-ng://$1 ${inputPaths} - set -x - ssh $1 -- nix build -L --no-link ${ - pkgs.lib.concatMapStringsSep " " (name: - "${self}#nixosConfigurations.${name}.config.system.build.toplevel" - ) (builtins.attrNames self.nixosConfigurations) - } - ''; + set -x + ssh $1 -- nix build -L --no-link ${ + pkgs.lib.concatMapStringsSep " " (name: + "${self}#nixosConfigurations.${name}.config.system.build.toplevel" + ) (builtins.attrNames self.nixosConfigurations) + } + ''; - } // + } // - builtins.foldl' (result: host: result // { - # TODO: check if the ethernet address is reachable and if not, - # execute wol on a machine in HQ. - "${host}-wake" = pkgs.writeScriptBin "${host}-wake" '' - #!${pkgs.runtimeShell} - exec ${pkgs.wol}/bin/wol ${hostRegistry.hosts."${host}".ether} - ''; - }) {} (builtins.attrNames (lib.filterAttrs (_: { wol ? false, ... }: wol) hostRegistry.hosts)) // + builtins.foldl' + (result: host: result // { + # TODO: check if the ethernet address is reachable and if not, + # execute wol on a machine in HQ. + "${host}-wake" = pkgs.writeScriptBin "${host}-wake" '' + #!${pkgs.runtimeShell} + exec ${pkgs.wol}/bin/wol ${hostRegistry.hosts."${host}".ether} + ''; + }) + { } + (builtins.attrNames (lib.filterAttrs (_: { wol ? false, ... }: wol) hostRegistry.hosts)) // - builtins.foldl' (result: name: - let - host = getHostAddr name; - target = ''root@"${host}"''; - rebuildArg = "--flake ${self}#${name} --option extra-substituters https://nix-serve.hq.c3d2.de"; - hostConfig = self.nixosConfigurations."${name}".config; - # let /var/lib/microvm/*/flake point to the flake-update branch so that - # `microvm -u $NAME` updates to what hydra built today. - selfRef = "git+https://gitea.c3d2.de/c3d2/nix-config?ref=flake-update"; - in result // { - # Generate a small script for copying this flake to the - # remote machine and bulding and switching there. - # Can be run with `nix run c3d2#…-nixos-rebuild switch` - "${name}-nixos-rebuild" = pkgs.writeScriptBin "${name}-nixos-rebuild" '' - #!${pkgs.runtimeShell} -ex - [[ $(ssh ${target} cat /etc/hostname) == ${name} ]] - nix copy --no-check-sigs --to ssh-ng://${target} ${inputPaths} - ssh ${target} nixos-rebuild ${rebuildArg} "$@" - ''; + builtins.foldl' + (result: name: + let + host = getHostAddr name; + target = ''root@"${host}"''; + rebuildArg = "--flake ${self}#${name} --option extra-substituters https://nix-serve.hq.c3d2.de"; + hostConfig = self.nixosConfigurations."${name}".config; + # let /var/lib/microvm/*/flake point to the flake-update branch so that + # `microvm -u $NAME` updates to what hydra built today. + selfRef = "git+https://gitea.c3d2.de/c3d2/nix-config?ref=flake-update"; + in + result // { + # Generate a small script for copying this flake to the + # remote machine and bulding and switching there. + # Can be run with `nix run c3d2#…-nixos-rebuild switch` + "${name}-nixos-rebuild" = pkgs.writeScriptBin "${name}-nixos-rebuild" '' + #!${pkgs.runtimeShell} -ex + [[ $(ssh ${target} cat /etc/hostname) == ${name} ]] + nix copy --no-check-sigs --to ssh-ng://${target} ${inputPaths} + ssh ${target} nixos-rebuild ${rebuildArg} "$@" + ''; - "${name}-nixos-rebuild-hydra" = pkgs.writeScriptBin "${name}-nixos-rebuild" '' - #!${pkgs.runtimeShell} -e - echo Copying Flakes - nix copy --no-check-sigs --to ssh-ng://root@hydra.serv.zentralwerk.org ${inputPaths} - echo Building on Hydra - ssh root@hydra.serv.zentralwerk.org -- \ - nix build -L -o /tmp/nixos-system-${name} \ - ${self}#nixosConfigurations.${name}.config.system.build.toplevel - echo Built. Obtaining link to data - TOPLEVEL=$(ssh root@hydra.serv.zentralwerk.org \ - readlink /tmp/nixos-system-${name}) - echo Checking target ${name} - ssh ${target} -- bash -e <&2 - exit 1 - ''} + ${lib.optionalString (! builtins.elem (hostConfig.c3d2.deployment.server or null) [ "server9" "server10" ]) '' + echo "MicroVM must be configured to proper server" >&2 + exit 1 + ''} - ${hostConfig.system.build.copyToServer} ${inputPaths} + ${hostConfig.system.build.copyToServer} ${inputPaths} - ${hostConfig.system.build.runOnServer} bash -e < flake + nix build -L \ + -o current \ + ${self}#nixosConfigurations.${name}.config.microvm.declaredRunner + echo '${selfRef}' > flake - [ -e old ] && nix store diff-closures ./old ./current - ln -sfT \$PWD/current /nix/var/nix/gcroots/microvm/${name} - ln -sfT \$PWD/booted /nix/var/nix/gcroots/microvm/booted-${name} - ln -sfT \$PWD/old /nix/var/nix/gcroots/microvm/old-${name} + [ -e old ] && nix store diff-closures ./old ./current + ln -sfT \$PWD/current /nix/var/nix/gcroots/microvm/${name} + ln -sfT \$PWD/booted /nix/var/nix/gcroots/microvm/booted-${name} + ln -sfT \$PWD/old /nix/var/nix/gcroots/microvm/old-${name} - systemctl restart microvm@${name}.service - END - ''; + systemctl restart microvm@${name}.service + END + ''; - "microvm-update-${name}-local" = pkgs.writeScriptBin "microvm-update-${name}" '' - #!${pkgs.runtimeShell} -e + "microvm-update-${name}-local" = pkgs.writeScriptBin "microvm-update-${name}" '' + #!${pkgs.runtimeShell} -e - ${lib.optionalString (! builtins.elem (hostConfig.c3d2.deployment.server or null) [ "server9" "server10" ]) '' - echo "MicroVM must be configured to proper server" >&2 - exit 1 - ''} + ${lib.optionalString (! builtins.elem (hostConfig.c3d2.deployment.server or null) [ "server9" "server10" ]) '' + echo "MicroVM must be configured to proper server" >&2 + exit 1 + ''} - ${hostConfig.system.build.copyToServer} ${hostConfig.microvm.declaredRunner} + ${hostConfig.system.build.copyToServer} ${hostConfig.microvm.declaredRunner} - ${hostConfig.system.build.runOnServer} bash -e < flake + ln -sfT ${hostConfig.microvm.declaredRunner} current + echo '${selfRef}' > flake - [ -e old ] && nix store diff-closures ./old ./current - ln -sfT \$PWD/current /nix/var/nix/gcroots/microvm/${name} - ln -sfT \$PWD/booted /nix/var/nix/gcroots/microvm/booted-${name} - ln -sfT \$PWD/old /nix/var/nix/gcroots/microvm/old-${name} + [ -e old ] && nix store diff-closures ./old ./current + ln -sfT \$PWD/current /nix/var/nix/gcroots/microvm/${name} + ln -sfT \$PWD/booted /nix/var/nix/gcroots/microvm/booted-${name} + ln -sfT \$PWD/old /nix/var/nix/gcroots/microvm/old-${name} - systemctl restart microvm@${name}.service - END - ''; + systemctl restart microvm@${name}.service + END + ''; - "nomad-${name}" = pkgs.writeScriptBin "nomad-${name}" '' - #!${pkgs.runtimeShell} -e + "nomad-${name}" = pkgs.writeScriptBin "nomad-${name}" '' + #!${pkgs.runtimeShell} -e - ${lib.optionalString (hostConfig.c3d2.deployment.server or null == "nomad") '' - echo "MicroVM must be configured for nomad" >&2 - exit 1 - ''} + ${lib.optionalString (hostConfig.c3d2.deployment.server or null == "nomad") '' + echo "MicroVM must be configured for nomad" >&2 + exit 1 + ''} - echo Copying Flakes - nix copy --no-check-sigs --to ssh-ng://root@hydra.serv.zentralwerk.org ${secrets} ${self} + echo Copying Flakes + nix copy --no-check-sigs --to ssh-ng://root@hydra.serv.zentralwerk.org ${secrets} ${self} - echo Building on Hydra - ssh root@hydra.serv.zentralwerk.org -- \ - nix build -L -o /tmp/microvm-${name}.job \ - ${self}#nixosConfigurations.${name}.config.system.build.nomadJob + echo Building on Hydra + ssh root@hydra.serv.zentralwerk.org -- \ + nix build -L -o /tmp/microvm-${name}.job \ + ${self}#nixosConfigurations.${name}.config.system.build.nomadJob - echo -n Built. Obtaining path... - JOB=$(ssh root@hydra.serv.zentralwerk.org -- \ - readlink /tmp/microvm-${name}.job) - echo \ $JOB + echo -n Built. Obtaining path... + JOB=$(ssh root@hydra.serv.zentralwerk.org -- \ + readlink /tmp/microvm-${name}.job) + echo \ $JOB - for h in server9 server10 ; do - echo Sharing with $h - ssh root@$h.cluster.zentralwerk.org -- \ - bash -e <