declare drv_path host="root@fedi203.abundos.eu" sshOpts=( -o BatchMode=yes -o StrictHostKeyChecking=no ) command=(nix-instantiate --expr ' let sources = import ./npins; configuration = { imports = [ ./deployment/check/common/targetNode.nix "${sources.nixpkgs}/nixos/modules/profiles/qemu-guest.nix" "${sources.disko}/module.nix" ]; disabledModules = [ "virtualisation/qemu-vm.nix" ]; config = { nix.nixPath = lib.mapAttrsToList (k: v: k + "=" + v) sources; networking = { nameservers = [ "95.215.185.6" "95.215.185.7" "2a00:51c0::5fd7:b906" "2a00:51c0::5fd7:b907" ]; interfaces.eth0.ipv4.addresses = [ { address = "95.215.187.203"; prefixLength = 24; } ]; interfaces.eth0.ipv6.addresses = [ { address = "2a00:51c0:13:1305::203"; prefixLength = 64; } ]; defaultGateway = { address = "95.215.187.1"; interface = "eth0"; }; defaultGateway6 = { address = "2a00:51c0:13:1305::1"; interface = "eth0"; }; }; }; }; eval = import "${sources.nixpkgs}/nixos/lib/eval-config.nix" { system = builtins.currentSystem; specialArgs = { inherit sources; }; modules = [ configuration ]; }; os = { inherit (eval) pkgs config options; system = eval.config.system.build.toplevel; inherit (eval.config.system.build) vm vmWithBootLoader; }; in { drv_path = os.config.system.build.toplevel.drvPath; out_path = os.config.system.build.toplevel; } ') "${command[@]}" -A out_path json="$("${command[@]}" --eval --strict --json)" eval "export $(echo $json | jq -r 'to_entries | map("\(.key)=\(.value)") | @sh')" outPath=$(nix-store --realize "$drv_path") NIX_SSHOPTS="${sshOpts[*]}" nix-copy-closure --to "$host" "$outPath" --gzip --use-substitutes ssh "${sshOpts[@]}" "$host" "nix-env --profile /nix/var/nix/profiles/system --set $outPath; $outPath/bin/switch-to-configuration switch"