{ # Snowfall Lib provides a customized `lib` instance with access to your flake's library # as well as the libraries available from your flake's inputs. lib, # You also have access to your flake's inputs. inputs, # All other arguments come from NixPkgs. You can use `pkgs` to pull packages or helpers # programmatically or you may add the named attributes as arguments here. pkgs, stdenv, ... }: pkgs.writeShellApplication { name = "sos"; runtimeInputs = with pkgs; [ nix-output-monitor jq ]; # TODO: somehow avoid --no-check-sigs?? text = '' #!/usr/bin/env sh # This script performs a nixos system update using the remote builder as remote store. # This should improve the system update performance drastically echo "########## building... ##########" OUT=$(nom build "$FLAKE#nixosConfigurations.$(hostname).config.system.build.toplevel" --store ssh-ng://nix@builder.julian-mutter.de --eval-store auto --json | jq -r '.[0].outputs.out') echo "########## output is: $OUT ##########" echo "########## downloading... ##########" nix copy --no-check-sigs --from ssh-ng://nix@builder.julian-mutter.de "$OUT" echo "########## activating... ##########" sudo "$OUT"/bin/switch-to-configuration switch ''; }