57 lines
1.6 KiB
Nix
57 lines
1.6 KiB
Nix
{ writeShellApplication, git, ... }:
|
|||
|
|
|
||
|
|
writeShellApplication {
|
||
|
|
name = "inject-nixos-config";
|
||
|
|
runtimeInputs = [ git ];
|
||
|
|
text = ''
|
||
|
|
hostname="''${1}"
|
||
|
|
if [ -n "''${hostname}"]; then
|
||
|
|
echo "You must provide a hostname";
|
||
|
|
exit 1;
|
||
|
|
fi
|
||
|
|
|
||
|
|
mv /etc/nixos /etc/nixos.bk
|
||
|
|
cd /etc
|
||
|
|
git clone http://github.com/greg-hellings/nixos-config nixos
|
||
|
|
mkdir -p "/etc/nixos/hosts/''${hostname}"
|
||
|
|
|
||
|
|
# Prepares everything for the flake usage
|
||
|
|
#cp /etc/nixos.bk/configuration.nix "/etc/nixos/hosts/''${hostname}/default.nix"
|
||
|
|
cat << EOF > "/etc/nixos/hosts/''${hostname}/default.nix"
|
||
|
|
{ pkgs, config, ... }:
|
||
|
|
|
||
|
|
{
|
||
|
|
imports = [ ./hardware-configuration.nix ];
|
||
|
|
|
||
|
|
boot.loader = {
|
||
|
|
systemd-boot.enable = true;
|
||
|
|
efi.canTouchEfiVariables = true;
|
||
|
|
};
|
||
|
|
|
||
|
|
networking.hostName = "''${hostname}";
|
||
|
|
greg = {
|
||
|
|
home = true;
|
||
|
|
tailscale.enable = true;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
EOF
|
||
|
|
cp /etc/nixos.bk/hardware-configuration.nix "/etc/nixos/hosts/''${hostname}/hardware-configuration.nix"
|
||
|
|
|
||
|
|
# Prepare home-manager portion for setup
|
||
|
|
mkdir -p "/etc/nixos/home/hosts/''${hostname}"
|
||
|
|
cat << EOF > "/etc/nixos/home/hosts/''${hostname}/default.nix"
|
||
|
|
{ pkgs, config, ... }:
|
||
|
|
|
||
|
|
{
|
||
|
|
}
|
||
|
|
EOF
|
||
|
|
|
||
|
|
# Prepares it for injecting the use case into the flake usage
|
||
|
|
cp /etc/nixos.bk/hardware-configuration.nix /etc/nixos
|
||
|
|
chown -R greg nixos
|
||
|
|
|
||
|
|
echo "Now you should be able to just run `nixos-rebuild switch` to enable the flake functionality"
|
||
|
|
echo "After that and adding the entry to the flake, run `nixos-rebuild boot --flake '.#''${hostname}'` and reboot"
|
||
|
|
'';
|
||
|
|
}
|