add install script

This commit is contained in:
2025-10-08 22:36:37 +02:00
parent c8569a1224
commit 1a6bc7b719

86
cli/install.sh Executable file
View File

@@ -0,0 +1,86 @@
#!/usr/bin/env bash
set -e
echo "=== Nix Home Manager Setup ==="
echo
# Check if Nix is installed
if ! command -v nix &>/dev/null; then
echo "Nix is not installed. Installing Nix..."
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --determinate
# Source nix profile
if [ -f /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh ]; then
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
fi
echo "Nix installed successfully!"
echo
else
echo "Nix is already installed."
echo
fi
# Detect architecture
ARCH=$(uname -m)
case "$ARCH" in
x86_64)
ARCH_NAME="x86"
;;
aarch64 | arm64)
ARCH_NAME="arm"
;;
*)
echo "Unsupported architecture: $ARCH"
exit 1
;;
esac
# Detect OS
OS=$(uname -s)
case "$OS" in
Linux)
OS_NAME="linux"
;;
Darwin)
OS_NAME="darwin"
;;
*)
echo "Unsupported OS: $OS"
exit 1
;;
esac
echo "Detected: $ARCH_NAME / $OS_NAME"
echo
# Prompt for user
echo "Select user:"
echo "1) root"
read -p "Enter choice [1]: " USER_CHOICE
USER_CHOICE=${USER_CHOICE:-1}
case "$USER_CHOICE" in
1)
USER_NAME="root"
;;
*)
echo "Invalid choice. Defaulting to root."
USER_NAME="root"
;;
esac
# Build flake configuration name
FLAKE_CONFIG="${USER_NAME}_${ARCH_NAME}_${OS_NAME}"
echo
echo "Configuration: $FLAKE_CONFIG"
echo "Running Home Manager..."
echo
# Run home-manager
nix run home-manager/master -- switch --flake "github:cupcakearmy/nix?dir=cli#${FLAKE_CONFIG}" -b backup
echo
echo "=== Setup complete! ==="