Files
nixos/install.sh
2025-08-30 20:31:10 +02:00

47 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
# Script to link the configuration of a host to the current directory
# to the root to make access easier
#
# This does not need to be used when flakes is enabled
# Yes need for nvim integration of nixos
cd $HOME/configuration/nixos
directory="hosts"
# List all folder names in the specified directory
echo "Known hosts:"
folders=()
counter=1
for folder in "$directory"/*/; do
if [ -d "$folder" ]; then
folder_name=$(basename "$folder")
folders+=("$folder_name")
echo "$counter: $folder_name"
((counter++))
fi
done
echo "Please select a host (number):"
read -p "> " folder_number
# Validate the selection
if ! echo "$folder_number" | grep -Eq '^[1-9][0-9]*$'; then
echo "Invalid selection: You must enter a positive integer."
exit 1
fi
folder_index=$((folder_number - 1))
if [ "$folder_index" -lt 0 ] || [ "$folder_index" -ge "${#folders[@]}" ]; then
echo "Invalid selection: Number out of range."
exit 1
fi
selected_folder="${folders[$folder_index]}" # Use the 0-based index
selected_folder_path="$directory/$selected_folder"
ln -sf "$selected_folder_path/configuration.nix" "configuration.nix"
echo "Switched to host configuration in the current directory."