From 6e5778b4d53217d48b4ecd5d3773a014fc0f7478 Mon Sep 17 00:00:00 2001 From: foglar Date: Fri, 3 Jan 2025 15:18:25 +0100 Subject: [PATCH] install script update --- README.md | 21 +++++++++------------ install.sh | 32 ++++++++++++++++++++++++++------ tsunemori/home.nix | 6 ++---- 3 files changed, 37 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 094ab56..315a2d7 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ ## Build and deploy -### Automatic installation +### Automatic installation **Recommended** - Use this one command on system with NixOS installed - This will download script with installation commands @@ -32,28 +32,25 @@ nix-shell -p git --command "nix run --experimental-features 'nix-command flakes' git+https://git.foglar.tech/foglar/dotfiles" ``` +> [!IMPORTANT] +> Ultimately, I can’t gaurantee this will work for anyone other than myself, so use this at your own discretion. + ### Manual installation -- Build and install with ssmple command: - -```bash -nix run git+https://git.foglar.tech/foglar/dotfiles.git -``` - -- simple build command for system using kogami profile +- Simple build command using kogami profile ```bash git clone https://git.foglar.tech/foglar/dotfiles.git $HOME/.dotfiles sudo nixos-rebuild switch --flake ~/.dotfiles#kogami --update # To update flake.lock file ``` -- generate a vm of the flake with this command +- Generate a vm of the flake with this command ```bash nix run github:nix-community/nixos-generators -- -c ./flake.nix --flake '#ginoza' -f vm --disk-size 20480 ``` -- deploy configuration on the new system +- Deploy configuration on the new system ```bash # Copy my repository @@ -126,7 +123,7 @@ nix-shell nixpkgs#age -c age-keygen -o ~/.config/sops/age/keys.txt ``` - Secrets are managed in yaml file [secrets.yaml](./nixos/system/packages/sops/secrets/secrets.yaml) -- Things that are actually managed in sops configuration: +- Things that are managed in sops configuration: - SSH keys - Passwords - Yubikey ID @@ -186,7 +183,7 @@ nvim /nixos/system/packages/ssh-client.nix - [EmergentMind's Nix-Config](https://github.com/EmergentMind/nix-config) - explanation of Yubikey setup and declarative configuration of SSH keys - [YT video](https://www.youtube.com/watch?v=3CeXbONjIgE) -- [LibrePhoenix's Nix-Config](https://github.com/librephoenix/nixos-config) - if else options and modular control center +- [LibrePhoenix's Nix-Config](https://github.com/librephoenix/nixos-config) - if else options, modular control center, one line installation - [YT video about modular control center](https://www.youtube.com/watch?v=H_Qct7TVB6o) - [YT video about if else options](https://www.youtube.com/watch?v=Qull6TMQm4Q) - [YT video about install with one command](https://www.youtube.com/watch?v=20BN4gqHwaQ&t=2025s) diff --git a/install.sh b/install.sh index 4c4694f..93216f9 100755 --- a/install.sh +++ b/install.sh @@ -1,26 +1,46 @@ #!/bin/sh -echo "Running script" - if [ $# -gt 0 ]; then SCRIPT_DIR=$1 else SCRIPT_DIR=~/.dotfiles fi -nix-shell -p git --command "git clone https://git.foglar.tech/foglar/dotfiles.git $SCRIPT_DIR" +if [ -d $SCRIPT_DIR ]; then + gum confirm "The directory $SCRIPT_DIR already exists. Do you want to delete it?" && yes | rm -rv $SCRIPT_DIR +fi + +nixos_profile=$(gum choose kogami ginoza tsunemori) +download_wallpapers=$(gum confirm "Do you want to download wallpapers (it may take longer)?" && echo true || echo false) + +if [ -d $SCRIPT_DIR ]; then + gum warn "The directory $SCRIPT_DIR already exists. Downloading updates..." + cd $SCRIPT_DIR && git pull +else + nix-shell -p git --command "git clone https://git.foglar.tech/foglar/dotfiles.git $SCRIPT_DIR" +fi + sudo nixos-generate-config --show-hardware-config >$SCRIPT_DIR/kogami/hardware-configuration.nix +gum log --structured --level info "Creating hardware configuration..." file $SCRIPT_DIR/kogami/hardware-configuration.nix sudo nixos-generate-config --show-hardware-config >$SCRIPT_DIR/ginoza/hardware-configuration.nix +gum log --structured --level info "Creating hardware configuration..." file $SCRIPT_DIR/kogami/hardware-configuration.nix +# Username sed -i "0,/shinya/s//$(whoami)/" $SCRIPT_DIR/flake.nix +gum log --structured --level info "Setting user name in flake.nix..." file $SCRIPT_DIR/flake.nix +# Set hostname by selected profile +sed -i "0,/kogami/s//$profile/" $SCRIPT_DIR/flake.nix +gum log --structured --level info "Setting hostname in flake.nix..." file $SCRIPT_DIR/flake.nix +# Set dotfiles path as $SCRIPT_DIR path +# Editor if [ -z $EDITOR ]; then EDITOR=nano fi +gum log --structured --level info "Opening flake.nix in $EDITOR..." file $SCRIPT_DIR/flake.nix $EDITOR $SCRIPT_DIR/flake.nix -profile=$(gum choose kogami ginoza) +gum log --structured --level info "Building configuration for $profile..." profile $profile sudo nixos-rebuild build --flake $SCRIPT_DIR#"${profile}" -gum confirm "Do you want to switch to the new configuration?" && sudo nixos-rebuild switch --flake $SCRIPT_DIR#"${profile}" -gum confirm "Do you want to reboot now?" && systemctl reboot || echo "Please reboot later, to switch to the new configuration" +gum confirm "Do you want to reboot now?" && systemctl reboot || gum log "Please reboot later, to switch to the new configuration" diff --git a/tsunemori/home.nix b/tsunemori/home.nix index 3146276..129b9c3 100644 --- a/tsunemori/home.nix +++ b/tsunemori/home.nix @@ -12,10 +12,8 @@ }; sh.zsh = { - enable = - true; - oh-my-posh.enable = - true; + enable = true; + oh-my-posh.enable = true; }; sh.oh-my-posh.enable = true;