diff --git a/users/pbsds/home/profiles/bashrc.d/nixos-switch-to-specialization.sh b/users/pbsds/home/profiles/bashrc.d/nixos-switch-to-specialization.sh new file mode 100644 index 0000000..afe85e1 --- /dev/null +++ b/users/pbsds/home/profiles/bashrc.d/nixos-switch-to-specialization.sh @@ -0,0 +1,23 @@ +nixos-switch-to-specialization() { + if [[ -z "$(ls /run/current-system/specialisation)" ]]; then + printf >&2 "%s\n" "No specializations found!" + return 1 + fi + + if ! command -v gum >/dev/null; then + printf >&2 "%s\n" "ERROR: 'gum' not found in PATH" + return 1 + fi + + specialization=$( + ls /run/current-system/specialisation | gum choose --height=15 + ) + if [[ -z "$specialization" ]]; then + return 1 + fi + + ( + set -x + sudo /run/current-system/specialisation/"$specialization"/bin/switch-to-configuration switch + ) +}