nix-flakes/modules/mizukios/features/packages/nrr.nix
2026-07-26 03:04:11 +09:00

60 lines
1.6 KiB
Nix

{ pkgs }:
pkgs.writeShellApplication {
name = "nrr";
runtimeInputs = with pkgs; [
nix-output-monitor
openssh
coreutils
];
text = ''
set -e
TARGET_NAME=""
if [ $# -gt 0 ]; then
TARGET_NAME="$1"
fi
FLAKE_PATH="."
declare -A HOST_MAP
HOST_MAP["hikari"]="10.11.8.100"
HOST_MAP["amia"]="10.11.8.101"
HOST_MAP["hako"]="10.11.8.102"
HOST_MAP["kazusa"]="82.21.82.30"
HOST_MAP["natsu"]="natsu.icn.mizuki.guru"
HOST_MAP["mafuyu"]="10.20.30.101"
HOST_MAP["mizuki"]="10.20.30.103"
HOST_MAP["ena"]="10.20.30.104"
if [ -z "$TARGET_NAME" ]; then
echo "nrr - NixOS "
echo ": nrr <hostname>"
exit 1
fi
if [[ -v "HOST_MAP[$TARGET_NAME]" ]]; then
TARGET_IP=''${HOST_MAP[$TARGET_NAME]}
echo " : $TARGET_NAME -> $TARGET_IP"
else
echo " ."
exit 1
fi
echo " ..."
BUILD_PATH=$(nom build "$FLAKE_PATH#nixosConfigurations.$TARGET_NAME.config.system.build.toplevel" --print-out-paths --no-link --eval-cache --accept-flake-config)
echo " ... ($BUILD_PATH -> $TARGET_IP)"
nix copy --to "ssh://imnyang@$TARGET_IP" "$BUILD_PATH"
echo " ..."
# shellcheck disable=SC2029
ssh "imnyang@$TARGET_IP" "sudo nix-env --profile /nix/var/nix/profiles/system --set \"$BUILD_PATH\" && sudo $BUILD_PATH/bin/switch-to-configuration switch"
echo " ..."
attic push imnyang "$BUILD_PATH" || echo " "
echo " !"
'';
}