installer automatic user and host creating

This commit is contained in:
nomadics9 2024-10-13 16:45:19 +03:00
parent 1afd42f5cb
commit dae370bb59
2 changed files with 37 additions and 15 deletions

View file

@ -40,14 +40,14 @@
nixosConfigurations = { nixosConfigurations = {
unkown = nixpkgs.lib.nixosSystem { unkown = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs outputs user hostname; }; specialArgs = { inherit inputs outputs user hostname; };
modules = [ ./hosts/unkown ]; modules = [ ./hosts/${hostname} ];
}; };
}; };
homeConfigurations = { homeConfigurations = {
"${user}@${hostname}" = home-manager.lib.homeManagerConfiguration { "${user}@${hostname}" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."x86_64-linux"; pkgs = nixpkgs.legacyPackages."x86_64-linux";
extraSpecialArgs = { inherit inputs outputs user; }; extraSpecialArgs = { inherit inputs outputs user; };
modules = [ ./home/nomad/unkown.nix ]; modules = [ ./home/${user}/${hostname}.nix ];
}; };
}; };
}; };

View file

@ -18,28 +18,52 @@ $ENDCOLOR
echo echo
echo echo
# Define the flake file path
flake_file="./flake.nix"
config_file="./hosts/unkown/configuration.nix" # Specify the correct path for your host's configuration file
monitor_config_file="./home/nomad/unkown.nix"
current_user=$(logname)
# Prompt for username and hostname # Prompt for username and hostname
read -p "Enter the new username: " new_user read -p "Enter the new username: " new_user
read -p "Enter the new hostname: " new_hostname read -p "Enter the new hostname: " new_hostname
# Define the flake file path
flake_file="./flake.nix"
config_file="./hosts/$new_hostname/configuration.nix" # Specify the correct path for your host's configuration file
monitor_config_file="./home/$new_user/$new_hostname.nix"
current_user=$(logname)
if [ ! -f "./hosts/common/users/nomad.nix" ]; then if [ ! -f "./hosts/common/users/nomad.nix" ]; then
echo -e "$RED Source file nomad.nix does not exist! $ENDCOLOR" echo -e "$RED Source file nomad.nix does not exist! $ENDCOLOR"
exit 1 exit 1
fi fi
# Copy the file
# Check if the new file already exists # Create new host
if [ -d "./hosts/$new_hostname" ]; then
read -p "Directory $new_hostname already exists. Overwrite contents? (y/n) " choice
if [[ "$choice" != "y" && "$choice" != "yes" ]]; then
echo -e "$YELLOW Skipping.. $ENDCOLOR"
else
echo -e "$YELLOW Overwriting Host configuration for $new_hostname... $ENDCOLOR"
rm -r "./hosts/$new_hostname"
cp -r "./hosts/unkown" "./hosts/$new_hostname"
sleep 0.2
chown -R $current_user:users "./hosts/$new_hostname"
echo -e "$GREEN Host configuration for $new_hostname created successfully! $ENDCOLOR"
fi
else
echo -e "$YELLOW Creating Host configuration for $new_hostname... $ENDCOLOR"
cp -r "./hosts/unkown" "./hosts/$new_hostname"
sleep 0.2
echo -e "$YELLOW Copying your hardware configurations $ENDCOLOR"
cp "/etc/nixos/hardware-configuration.nix" "./hosts/unkown/hardware-configuration.nix"
chown -R $current_user:users "./hosts/$new_hostname"
echo -e "$GREEN Host configuration for $new_hostname created successfully! $ENDCOLOR"
fi
# Create user directories
if [ -f "./hosts/common/users/$new_user.nix" ]; then if [ -f "./hosts/common/users/$new_user.nix" ]; then
read -p "File $new_user.nix already exists. Overwrite? (y/n) " choice read -p "File $new_user.nix already exists. Overwrite? (y/n) " choice
if [ "$choice" != "y" or "$choice" != "yes"]; then if [[ "$choice" != "y" && "$choice" != "yes" ]]; then
echo -e "$YELLOW Skipping.. $ENDCOLOR" echo -e "$YELLOW Skipping.. $ENDCOLOR"
else else
echo -e "$YELLOW Overwriting User configuration for $new_user... $ENDCOLOR" echo -e "$YELLOW Overwriting User configuration for $new_user... $ENDCOLOR"
@ -56,7 +80,7 @@ fi
if [ -d "./home/$new_user" ]; then if [ -d "./home/$new_user" ]; then
read -p "Directory $new_user already exists. Overwrite contents? (y/n) " choice read -p "Directory $new_user already exists. Overwrite contents? (y/n) " choice
if [ "$choice" != "y" or "$choice" != "yes" ]; then if [[ "$choice" != "y" && "$choice" != "yes" ]]; then
echo -e "$YELLOW Skipping.. $ENDCOLOR" echo -e "$YELLOW Skipping.. $ENDCOLOR"
else else
echo -e "$YELLOW Overwriting Home configuration for $new_user... $ENDCOLOR" echo -e "$YELLOW Overwriting Home configuration for $new_user... $ENDCOLOR"
@ -149,9 +173,7 @@ sed -i "s/common.services.vfio.enable = .*/common.services.vfio.enable = $vfio_r
# Notify the user that the changes are complete # Notify the user that the changes are complete
echo -e "$GREEN Configuration has been updated with your preferences $ENDCOLOR" echo -e "$GREEN Configuration has been updated with your preferences $ENDCOLOR"
echo -e "$YELLOW Copying your hardware configurations $ENDCOLOR"
cp /etc/nixos/hardware-configuration.nix ./hosts/unkown/hardware-configuration.nix
sleep 2 sleep 2
sudo nixos-rebuild boot --flake .#unkown sudo nixos-rebuild boot --flake .#unkown