#! /usr/bin/env bash

# Shows the output of every command
set +x

activate_hm() {
  result/activate
}

rebuild_xmonad_laptop() {
  nom build .#homeConfigurations.xmonad-laptop.activationPackage
  activate_hm
}

rebuild_xmonad_desktop() {
  nom build .#homeConfigurations.xmonad-desktop.activationPackage
  activate_hm
}

rebuild_hyprland_laptop() {
  nom build .#homeConfigurations.hyprland-laptop.activationPackage
  activate_hm
}

rebuild_hyprland_desktop() {
  nom build .#homeConfigurations.hyprland-desktop.activationPackage
  activate_hm
}

rebuild_niri_laptop() {
  nom build .#homeConfigurations.niri-laptop.activationPackage
  activate_hm
}

rebuild_niri_desktop() {
  nom build .#homeConfigurations.niri-desktop.activationPackage
  activate_hm
}

rebuild_nixos() {
  echo "> Switching to .#$HOSTNAME flake"
  sudo nixos-rebuild switch --flake ".#$HOSTNAME"
}

rebuild_xmod_vm() {
  nixos-rebuild build-vm --flake .#xmod
}

case $1 in
  "niri")
    rebuild_niri_desktop;;
  "niri-edp")
    rebuild_niri_laptop;;
  "os")
    rebuild_nixos;;
  "update-fish")
    fish -c fish_update_completions;;
  "update-nix-index")
    nix-index --filter-prefix '/bin/';;
  "vm")
    rebuild_xmod_vm;;
  *)
    echo "Wrong argument: look at the switch script.";;
esac
