aboutsummaryrefslogtreecommitdiffstats
path: root/copy.sh
diff options
context:
space:
mode:
authorDonald Williams <129223418+dwilliam62@users.noreply.github.com>2026-01-09 18:47:42 -0500
committerGitHub <noreply@github.com>2026-01-09 18:47:42 -0500
commit46e342ceb3a2757554685853597e12a9e70427e0 (patch)
treea65f6262c722762e06e4f5d158bdda29b01660ff /copy.sh
parentdb41c69e3bf2396d7dcf56b2c6314b4078a61299 (diff)
Copy menu - 1st step in menu driven dot files install / upgrade process (#917)
* Phase 1 of creating TUI for copy.sh for installs and upgrades On branch copy-menu Changes to be committed: modified: copy.sh new file: scripts/copy_menu.sh * Fixing formatting in copy-menu On branch copy-menu Your branch is up to date with 'origin/copy-menu'. Changes to be committed: modified: scripts/copy_menu.sh * More formatting and color first letter as selectable option On branch copy-menu Your branch is up to date with 'origin/copy-menu'. Changes to be committed: modified: copy.sh modified: scripts/copy_menu.sh * Fixing syntax error * Some whiptail versions don't support color Added check before displaying colors On branch copy-menu Your branch is up to date with 'origin/copy-menu'. Changes to be committed: modified: scripts/copy_menu.sh * fixing formatting On branch copy-menu Your branch is up to date with 'origin/copy-menu'. Changes to be committed: modified: scripts/copy_menu.sh * More formatting for whiptail * Formatting whiptail is so much fun * Changed descrption to two lines * Whiltail 4, human 0 * Whiltail 5, human 0 - shortened text * Whiltail 6, human 1 - remove dup items * Whiltail 6, human 2 - removed color highlight
Diffstat (limited to 'copy.sh')
-rwxr-xr-xcopy.sh51
1 files changed, 51 insertions, 0 deletions
diff --git a/copy.sh b/copy.sh
index 8dc94649..0e88b65e 100755
--- a/copy.sh
+++ b/copy.sh
@@ -23,6 +23,12 @@ BLUE="$(tput setaf 4)"
SKY_BLUE="$(tput setaf 6)"
RESET="$(tput sgr0)"
MIN_EXPRESS_VERSION="2.3.18"
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+MENU_HELPER="$SCRIPT_DIR/scripts/copy_menu.sh"
+if [ -f "$MENU_HELPER" ]; then
+ # shellcheck source=./scripts/copy_menu.sh
+ . "$MENU_HELPER"
+fi
version_gte() {
[ "$1" = "$(echo -e "$1\n$2" | sort -V | tail -n1)" ]
@@ -60,15 +66,18 @@ EOF
UPGRADE_MODE=0
EXPRESS_MODE=0
+RUN_MODE=""
while [[ $# -gt 0 ]]; do
case "$1" in
--upgrade)
UPGRADE_MODE=1
+ RUN_MODE="upgrade"
;;
--express-upgrade)
UPGRADE_MODE=1
EXPRESS_MODE=1
+ RUN_MODE="express"
;;
-h | --help)
print_usage
@@ -90,6 +99,47 @@ fi
if [ "$EXPRESS_MODE" -eq 1 ] && [ "$EXPRESS_SUPPORTED" -eq 0 ]; then
echo "${WARN} Express upgrade requires installed dotfiles v${MIN_EXPRESS_VERSION} or newer. Falling back to standard upgrade."
EXPRESS_MODE=0
+ RUN_MODE="upgrade"
+fi
+
+if [ -z "$RUN_MODE" ]; then
+ if declare -f show_copy_menu >/dev/null 2>&1; then
+ while [ -z "$RUN_MODE" ]; do
+ show_copy_menu "$EXPRESS_SUPPORTED"
+ choice_lower=$(echo "$COPY_MENU_CHOICE" | tr '[:upper:]' '[:lower:]')
+ case "$choice_lower" in
+ install)
+ RUN_MODE="install"
+ UPGRADE_MODE=0
+ EXPRESS_MODE=0
+ ;;
+ upgrade)
+ RUN_MODE="upgrade"
+ UPGRADE_MODE=1
+ EXPRESS_MODE=0
+ ;;
+ express)
+ if [ "$EXPRESS_SUPPORTED" -eq 0 ]; then
+ echo "${WARN} Express mode requires installed dotfiles v${MIN_EXPRESS_VERSION} or newer. Please choose another option."
+ continue
+ fi
+ RUN_MODE="express"
+ UPGRADE_MODE=1
+ EXPRESS_MODE=1
+ ;;
+ quit)
+ echo "${NOTE} Exiting per user selection."
+ exit 0
+ ;;
+ *)
+ echo "${WARN} Invalid selection."
+ ;;
+ esac
+ done
+ else
+ echo "${NOTE} Menu helper not found; defaulting to install workflow."
+ RUN_MODE="install"
+ fi
fi
# Check if running as root. If root, script will exit
@@ -154,6 +204,7 @@ LOG="Copy-Logs/install-$(date +%d-%H%M%S)_dotfiles.log"
# update home directories
xdg-user-dirs-update 2>&1 | tee -a "$LOG" || true
+echo "${INFO} Selected workflow: ${RUN_MODE}" 2>&1 | tee -a "$LOG"
if [ "$UPGRADE_MODE" -eq 1 ]; then
echo "${INFO} Upgrade mode enabled." 2>&1 | tee -a "$LOG"
fi
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage