mirror of
https://github.com/cupcakearmy/nix-macos.git
synced 2025-12-07 22:45:02 +00:00
add install script
This commit is contained in:
86
cli/install.sh
Executable file
86
cli/install.sh
Executable 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! ==="
|
||||||
Reference in New Issue
Block a user