fix(install): fix gum syntax and TTY redirection in bootstrap script
This commit is contained in:
47
install.sh
47
install.sh
@@ -1,17 +1,40 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Use Nix to temporarily pull in Gum for a beautiful UI
|
# Define a wrapper for gum to handle Nix run fallback and TTY redirection
|
||||||
NIX_RUN="nix run --extra-experimental-features nix-command --extra-experimental-features flakes nixpkgs#gum --"
|
gum() {
|
||||||
|
local cmd="$1"
|
||||||
|
shift
|
||||||
|
local GUM_CMD
|
||||||
|
if command -v gum >/dev/null 2>&1; then
|
||||||
|
GUM_CMD="gum"
|
||||||
|
else
|
||||||
|
# Use --quiet to avoid progress bars in captured output
|
||||||
|
GUM_CMD="nix run --quiet --extra-experimental-features nix-command --extra-experimental-features flakes nixpkgs#gum --"
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$cmd" in
|
||||||
|
input|confirm|choose|filter|write)
|
||||||
|
$GUM_CMD "$cmd" "$@" < /dev/tty
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
$GUM_CMD "$cmd" "$@"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
clear
|
clear
|
||||||
$NIX_RUN style --border double --margin "1" --padding "1 2" --border-foreground 212 "Nomarchy OS Bootstrap"
|
gum style \
|
||||||
|
--foreground 212 --border-foreground 212 --border double \
|
||||||
|
--align center --width 50 --margin "1 2" --padding "2 4" \
|
||||||
|
"NOMARCHY" "The Omarchy-flavored NixOS"
|
||||||
|
|
||||||
echo "This script will generate your private downstream environment."
|
echo "This script will generate your private downstream environment."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# 1. Gather User Information
|
# 1. Gather User Information
|
||||||
USERNAME=$($NIX_RUN input --placeholder "Enter your Linux username")
|
USERNAME=$(gum input --placeholder "Enter your Linux username")
|
||||||
HOSTNAME=$($NIX_RUN input --placeholder "Enter a hostname for this machine (e.g., nomarchy-sys)")
|
HOSTNAME=$(gum input --placeholder "Enter a hostname for this machine (e.g., nomarchy-sys)")
|
||||||
|
|
||||||
# 2. Setup the Local Directory
|
# 2. Setup the Local Directory
|
||||||
LOCAL_DIR="$HOME/.nomarchy"
|
LOCAL_DIR="$HOME/.nomarchy"
|
||||||
@@ -100,10 +123,13 @@ nix run nixpkgs#git -- -C "$LOCAL_DIR" add .
|
|||||||
|
|
||||||
# 7. Execution
|
# 7. Execution
|
||||||
clear
|
clear
|
||||||
$NIX_RUN style --border normal --margin "1" --padding "1 2" --border-foreground 212 "Ready for Genesis"
|
gum style \
|
||||||
|
--foreground 212 --border-foreground 212 --border normal \
|
||||||
|
--align center --width 50 --margin "1 2" --padding "1 2" \
|
||||||
|
"Ready for Genesis"
|
||||||
echo "Your private downstream configuration has been generated."
|
echo "Your private downstream configuration has been generated."
|
||||||
|
|
||||||
if $NIX_RUN confirm "Build Nomarchy OS now? (This will take a few minutes)"; then
|
if gum confirm "Build Nomarchy OS now? (This will take a few minutes)"; then
|
||||||
echo "Building System Engine..."
|
echo "Building System Engine..."
|
||||||
sudo nixos-rebuild switch --flake "$LOCAL_DIR#$HOSTNAME" --extra-experimental-features "nix-command flakes"
|
sudo nixos-rebuild switch --flake "$LOCAL_DIR#$HOSTNAME" --extra-experimental-features "nix-command flakes"
|
||||||
|
|
||||||
@@ -111,8 +137,11 @@ if $NIX_RUN confirm "Build Nomarchy OS now? (This will take a few minutes)"; the
|
|||||||
nix run home-manager/release-25.11 -- switch --flake "$LOCAL_DIR#$USERNAME"
|
nix run home-manager/release-25.11 -- switch --flake "$LOCAL_DIR#$USERNAME"
|
||||||
|
|
||||||
clear
|
clear
|
||||||
$NIX_RUN style --border double --margin "1" --padding "1 2" --border-foreground 212 "Installation Complete"
|
gum style \
|
||||||
|
--foreground 212 --border-foreground 212 --border double \
|
||||||
|
--align center --width 50 --margin "1 2" --padding "2 4" \
|
||||||
|
"Installation Complete"
|
||||||
echo "Welcome to Nomarchy OS. Reboot to enter your new environment."
|
echo "Welcome to Nomarchy OS. Reboot to enter your new environment."
|
||||||
else
|
else
|
||||||
echo "Aborted. You can review your files in $LOCAL_DIR and run the build manually later."
|
echo "Aborted. You can review your files in $LOCAL_DIR and run the build manually later."
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user