From fb399f2db9ac6a14603dc5ffdeabdb582ef73cfc Mon Sep 17 00:00:00 2001 From: Bryan Ramos Date: Mon, 13 May 2024 15:37:24 -0400 Subject: [PATCH] justfile --- install.sh | 111 ----------------------------------------------------- justfile | 64 ++++++++++++++++-------------- 2 files changed, 35 insertions(+), 140 deletions(-) delete mode 100644 install.sh diff --git a/install.sh b/install.sh deleted file mode 100644 index b529367..0000000 --- a/install.sh +++ /dev/null @@ -1,111 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -arg="${1:-nixos}" -isNixOS=$(grep -q 'ID=nixos' /etc/os-release) - -case "$arg" in - "nixos") - if ! isNixOS; then - echo "⚠️ - Requires NixOS & sudo priveledge" - fi - echo "Install this NixOS Configuration? (y/n)" - while true; do - read res; - if [ "$res" = "y" ] || [ "$res" = "Y" ]; then - echo "Installing..."; - if [ "$EUID" -ne 0 ]; then - echo "Allow sudo access? (y/n)" - while true; do - read -r res - case "$res" in - [yY]) - exec sudo bash "$0" "$@" - exit 0 - ;; - [nN]) - echo "Aborting..." - exit 1 - ;; - *) - echo "Please enter a valid response (y/n)" - ;; - esac - done - fi - if [ -d "/etc/nixos" ]; then - echo "The /etc/nixos directory exists." - echo "Would you like to back up and proceed? (y/n)" - while true; do - read -r res - case "$res" in - [yY]) - mkdir -p $(git rev-parse --show-toplevel)/bkup - cp -r /etc/nixos $(git rev-parse --show-toplevel)/bkup.nixos_$(date +%Y%m%d%H%M%S) - break - ;; - [nN]) - echo "Cancelled. Aborting..." - exit 1 - ;; - *) - echo "Error: Please enter a valid response (y/n)" - ;; - esac - done - else - ln -s /etc/nixos $(git rev-parse --show-toplevel) - fi - fi -elif [ "{{TYPE}}" = "home" ]; then - echo "Install this Home-Manager Configuration?" - echo "⚠️ - If you don't have nix + home-manager installed, this will install them both" - echo "Proceed? (y/n)" - while true; do - read -r res - case "$res" in - [yY]) - echo "Installing..." - - if grep -q - - - if [ -d "$HOME/.config/home-manager" ]; then - echo "The ~/.config/home-manager directory exists." - echo "Would you like to back up and proceed? (y/n)" - while true; do - read -r res - case "$res" in - [yY]) - mkdir -p $(git rev-parse --show-toplevel)/bkup - mv $HOME/.config/home-manager $(git rev-parse --show-toplevel)/bkup/home-manager_$(date +%Y%m%d%H%M%S) - ln -s $HOME/.config/home-manager $(git rev-parse --show-toplevel) - break - ;; - [nN]) - echo "Cancelled. Aborting..." - exit 1 - ;; - *) - echo "Error: Please enter a valid response (y/n)" - ;; - esac - done - else - ln -s $HOME/.config/home-manager $(git rev-parse --show-toplevel) - fi - ;; - [nN]) - echo "Cancelled. Aborting..." - exit 1 - ;; - *) - echo "Error: Please enter a valid response (y/n)" - ;; - esac - done - flake_config="experimental-features = nix-command flakes" - - if [ -f "/etc/nix/nix.conf" ] || [ -f "$HOME/.config/nix/nix.conf" ]; then - if grep -q "^$flake_config" "" diff --git a/justfile b/justfile index 51dc306..186f535 100644 --- a/justfile +++ b/justfile @@ -2,40 +2,46 @@ test TYPE="nixos" SYSTEM="desktop": #!/usr/bin/env bash set -euo pipefail - if [ "{{TYPE}}" = "home" ]; then - if [ -n "{{SYSTEM}}" ]; then - echo "Error: Undefined argument" - exit 1 - fi - echo "Testing home configuration..." - nix build --dry-run .#homeConfigurations."workstation".config.system.build.toplevel -L - elif [ "{{TYPE}}" = "nixos" ]; then - if [ "{{SYSTEM}}" = "desktop" ] || [ "{{SYSTEM}}" = "server" ] || [ "{{SYSTEM}}" = "wsl" ] || [ "{{SYSTEM}}" = "laptop" ]; then - echo "Testing NixOS configuration for {{SYSTEM}}..." - nix build --dry-run .#nixosConfigurations."{{SYSTEM}}".config.system.build.toplevel -L - else - echo "Error: Unknown argument - '{{SYSTEM}}'" + case "{{TYPE}}" in + "nixos") + if [ "{{SYSTEM}}" = "desktop" ] || [ "{{SYSTEM}}" = "server" ] || [ "{{SYSTEM}}" = "wsl" ] || [ "{{SYSTEM}}" = "laptop" ]; then + echo "Testing NixOS configuration for {{SYSTEM}}..." + nix build --dry-run .#nixosConfigurations."{{SYSTEM}}".config.system.build.toplevel -L + exit 0 + else + echo "Error: Unknown argument - '{{SYSTEM}}'" + echo "Use one of:" + echo " desktop" + echo " server" + echo " laptop" + echo " wsl" + exit 1 + fi + ;; + "home") + echo "Testing home configuration..." + nix build --dry-run .#homeConfigurations."workstation".config.home-manager.build.toplevel -L + exit 0 + ;; + *) + echo "Invalid usage: {{TYPE}}."; echo "Use one of:" - echo " desktop" - echo " server" - echo " laptop" - echo " wsl" + echo " nixos" + echo " home" exit 1 - fi - else - echo "Invalid usage: {{TYPE}}."; - echo "Use one of:" - echo " nixos" - echo " home" - exit 1 - fi + ;; + esac -# Symlinks /etc/nixos or ~/.config/home-manager to this repo -install: - source ./install +# NixOS-rebuild switch short-hand +up SYSTEM="desktop": + sudo nixos-rebuild switch --flake .#{{SYSTEM}} + +# NixOS-rebuild boot short-hand +boot SYSTEM="desktop": + sudo nixos-rebuild boot --flake .#{{SYSTEM}} # Commit all changes and push to upstream -gh MESSAGE="": +gh MESSAGE: #!/usr/bin/env bash set -euo pipefail if [ -n "{{MESSAGE}}" ]; then