From fb8b27b29cb1a853aa6426e1eb150d507c4505cc Mon Sep 17 00:00:00 2001 From: Giancarlo Vizhnay <75271806+polydeuces32@users.noreply.github.com> Date: Sat, 9 May 2026 16:25:46 -0400 Subject: [PATCH 1/3] Add light-blue ASCII ghost to CLI dev status --- scripts/dev-status.sh | 114 +++++++++++++++++++++++++++++++----------- 1 file changed, 84 insertions(+), 30 deletions(-) diff --git a/scripts/dev-status.sh b/scripts/dev-status.sh index 81d68c5..5968528 100755 --- a/scripts/dev-status.sh +++ b/scripts/dev-status.sh @@ -6,13 +6,88 @@ PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$PROJECT_ROOT" -printf '\n=== %s Dev Status ===\n\n' "$PROJECT_NAME" +if [[ -t 1 ]]; then + RESET=$'\033[0m' + BOLD=$'\033[1m' + DIM=$'\033[2m' + CYAN=$'\033[36m' + BLUE=$'\033[94m' + GREEN=$'\033[32m' + ORANGE=$'\033[38;5;208m' + PURPLE=$'\033[35m' + YELLOW=$'\033[33m' +else + RESET="" + BOLD="" + DIM="" + CYAN="" + BLUE="" + GREEN="" + ORANGE="" + PURPLE="" + YELLOW="" +fi + +print_ghost() { + cat </dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1; then + local branch commit + branch="$(git branch --show-current 2>/dev/null || printf 'unknown')" + commit="$(git rev-parse --short HEAD 2>/dev/null || printf 'unknown')" + + printf '%sBranch:%s %s%s%s\n' "$DIM" "$RESET" "$GREEN" "$branch" "$RESET" + printf '%sCommit:%s %s%s%s\n' "$DIM" "$RESET" "$YELLOW" "$commit" "$RESET" + + if git diff --quiet --ignore-submodules -- 2>/dev/null; then + printf '%sWorking tree:%s %s✓ clean%s\n' "$DIM" "$RESET" "$GREEN" "$RESET" + else + printf '%sWorking tree:%s %shas local changes%s\n' "$DIM" "$RESET" "$ORANGE" "$RESET" + fi + else + printf 'Git: unavailable or not inside a repository\n' + fi +} + +print_project_files() { + printf '\n%s=== Project Files ===%s\n' "$CYAN" "$RESET" + find . \ + -path './.git' -prune -o \ + -path './node_modules' -prune -o \ + -path './dist' -prune -o \ + -path './build' -prune -o \ + -maxdepth 2 \ + -type f \ + -print | sort +} + +printf '\n%s%s=== %s Dev Status ===%s\n\n' "$BOLD" "$ORANGE" "$PROJECT_NAME" "$RESET" +printf '%sgiancarlovizhnay@Mac%s %s~%s ./scripts/dev-status.sh\n\n' "$GREEN" "$RESET" "$DIM" "$RESET" if command -v fastfetch >/dev/null 2>&1; then - fastfetch + if fastfetch --help 2>/dev/null | grep -q -- '--logo'; then + fastfetch --logo none + else + fastfetch + fi else - cat <<'EOF' -fastfetch not installed. + cat </dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1; then - printf 'Branch: %s\n' "$(git branch --show-current 2>/dev/null || printf 'unknown')" - printf 'Commit: %s\n' "$(git rev-parse --short HEAD 2>/dev/null || printf 'unknown')" - - if git diff --quiet --ignore-submodules -- 2>/dev/null; then - printf 'Working tree: clean\n' - else - printf 'Working tree: has local changes\n' - fi -else - printf 'Git: unavailable or not inside a repository\n' -fi +printf '\n' +print_ghost +print_repo_status +print_project_files -printf '\n=== Project Files ===\n' -find . \ - -path './.git' -prune -o \ - -path './node_modules' -prune -o \ - -path './dist' -prune -o \ - -path './build' -prune -o \ - -maxdepth 2 \ - -type f \ - -print | sort - -printf '\nDone.\n' +printf '\n%s✓ Done.%s\n' "$GREEN" "$RESET" From 1399b2f99ea5c7469895e504fdefb987fc168673 Mon Sep 17 00:00:00 2001 From: Giancarlo Vizhnay <75271806+polydeuces32@users.noreply.github.com> Date: Sat, 9 May 2026 16:29:18 -0400 Subject: [PATCH 2/3] Refine CLI ghost terminal layout --- scripts/dev-status.sh | 112 ++++++++++++++++++++++++++++-------------- 1 file changed, 75 insertions(+), 37 deletions(-) diff --git a/scripts/dev-status.sh b/scripts/dev-status.sh index 5968528..c5c3b4a 100755 --- a/scripts/dev-status.sh +++ b/scripts/dev-status.sh @@ -16,6 +16,8 @@ if [[ -t 1 ]]; then ORANGE=$'\033[38;5;208m' PURPLE=$'\033[35m' YELLOW=$'\033[33m' + WHITE=$'\033[97m' + RED=$'\033[31m' else RESET="" BOLD="" @@ -26,38 +28,92 @@ else ORANGE="" PURPLE="" YELLOW="" + WHITE="" + RED="" fi +line() { + printf '%s%s\n' "$DIM" '────────────────────────────────────────────────────────────────────────────' "$RESET" +} + +print_window_header() { + printf '\n%s●%s %s●%s %s●%s %sdev-status.sh — %s%s\n' \ + "$RED" "$RESET" "$YELLOW" "$RESET" "$GREEN" "$RESET" "$DIM" "$PROJECT_NAME" "$RESET" + line +} + +print_prompt() { + printf '\n%s%s@Mac%s %s~%s ./scripts/dev-status.sh\n\n' "$GREEN" "giancarlovizhnay" "$RESET" "$DIM" "$RESET" +} + print_ghost() { cat </dev/null || printf 'unknown')" + local_ip="$(ipconfig getifaddr en0 2>/dev/null || printf 'offline')" + + printf '%s%s%s\n' "$BOLD" "$CYAN" "giancarlovizhnay@Mac" "$RESET" + printf '%s\n' "────────────────────────" + printf '%sOS%s : %s\n' "$ORANGE" "$RESET" "$os" + printf '%sHost%s : %s\n' "$ORANGE" "$RESET" "$host" + printf '%sKernel%s : %s\n' "$ORANGE" "$RESET" "$kernel" + printf '%sUptime%s : %s\n' "$ORANGE" "$RESET" "$uptime" + printf '%sShell%s : %s\n' "$ORANGE" "$RESET" "$shell_name" + printf '%sTerminal%s : %s\n' "$ORANGE" "$RESET" "$terminal_name" + printf '%sCPU%s : %s\n' "$ORANGE" "$RESET" "$cpu" + printf '%sMemory%s : %s\n' "$ORANGE" "$RESET" "$memory" + printf '%sDisk (/)%s : %s\n' "$ORANGE" "$RESET" "$disk" + printf '%sLocal IP%s : %s\n' "$ORANGE" "$RESET" "$local_ip" +} + +print_status_grid() { + printf '%s%s=== %s Dev Status ===%s\n\n' "$BOLD" "$CYAN" "$PROJECT_NAME" "$RESET" + paste <(print_ghost) <(collect_system_info) | sed 's/^/ /' +} + print_repo_status() { printf '\n%s=== Repository ===%s\n' "$PURPLE" "$RESET" - printf '%sPath:%s %s\n' "$DIM" "$RESET" "$PROJECT_ROOT" + line + printf '%sPath%s : %s%s%s\n' "$DIM" "$RESET" "$CYAN" "$PROJECT_ROOT" "$RESET" if command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1; then local branch commit branch="$(git branch --show-current 2>/dev/null || printf 'unknown')" commit="$(git rev-parse --short HEAD 2>/dev/null || printf 'unknown')" - printf '%sBranch:%s %s%s%s\n' "$DIM" "$RESET" "$GREEN" "$branch" "$RESET" - printf '%sCommit:%s %s%s%s\n' "$DIM" "$RESET" "$YELLOW" "$commit" "$RESET" + printf '%sBranch%s : %s%s%s\n' "$DIM" "$RESET" "$GREEN" "$branch" "$RESET" + printf '%sCommit%s : %s%s%s\n' "$DIM" "$RESET" "$YELLOW" "$commit" "$RESET" if git diff --quiet --ignore-submodules -- 2>/dev/null; then - printf '%sWorking tree:%s %s✓ clean%s\n' "$DIM" "$RESET" "$GREEN" "$RESET" + printf '%sWorking tree%s : %s✓ clean%s\n' "$DIM" "$RESET" "$GREEN" "$RESET" else - printf '%sWorking tree:%s %shas local changes%s\n' "$DIM" "$RESET" "$ORANGE" "$RESET" + printf '%sWorking tree%s : %shas local changes%s\n' "$DIM" "$RESET" "$ORANGE" "$RESET" fi else printf 'Git: unavailable or not inside a repository\n' @@ -66,6 +122,7 @@ print_repo_status() { print_project_files() { printf '\n%s=== Project Files ===%s\n' "$CYAN" "$RESET" + line find . \ -path './.git' -prune -o \ -path './node_modules' -prune -o \ @@ -73,31 +130,12 @@ print_project_files() { -path './build' -prune -o \ -maxdepth 2 \ -type f \ - -print | sort + -print | sort | sed 's#^./#├── #' } -printf '\n%s%s=== %s Dev Status ===%s\n\n' "$BOLD" "$ORANGE" "$PROJECT_NAME" "$RESET" -printf '%sgiancarlovizhnay@Mac%s %s~%s ./scripts/dev-status.sh\n\n' "$GREEN" "$RESET" "$DIM" "$RESET" - -if command -v fastfetch >/dev/null 2>&1; then - if fastfetch --help 2>/dev/null | grep -q -- '--logo'; then - fastfetch --logo none - else - fastfetch - fi -else - cat < Date: Sat, 9 May 2026 16:33:24 -0400 Subject: [PATCH 3/3] Add animated CLI ghost sequence --- scripts/dev-status.sh | 71 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 3 deletions(-) diff --git a/scripts/dev-status.sh b/scripts/dev-status.sh index c5c3b4a..dcdccf4 100755 --- a/scripts/dev-status.sh +++ b/scripts/dev-status.sh @@ -33,7 +33,7 @@ else fi line() { - printf '%s%s\n' "$DIM" '────────────────────────────────────────────────────────────────────────────' "$RESET" + printf '%s%s%s\n' "$DIM" '────────────────────────────────────────────────────────────────────────────' "$RESET" } print_window_header() { @@ -46,7 +46,7 @@ print_prompt() { printf '\n%s%s@Mac%s %s~%s ./scripts/dev-status.sh\n\n' "$GREEN" "giancarlovizhnay" "$RESET" "$DIM" "$RESET" } -print_ghost() { +print_ghost_frame_1() { cat </dev/null || true + + for _ in 1 2; do + tput rc 2>/dev/null || true + print_ghost_frame_1 + sleep 0.16 + tput rc 2>/dev/null || true + print_ghost_frame_2 + sleep 0.12 + tput rc 2>/dev/null || true + print_ghost_frame_3 + sleep 0.18 + done + + tput cnorm 2>/dev/null || true + printf '\n' +} + collect_system_info() { local os host kernel uptime shell_name terminal_name cpu memory disk local_ip os="$(sw_vers -productName 2>/dev/null || uname -s) $(sw_vers -productVersion 2>/dev/null || true)" @@ -78,7 +142,7 @@ collect_system_info() { disk="$(df -h / | awk 'NR==2 {print $3 " / " $2 " (" $5 ")"}' 2>/dev/null || printf 'unknown')" local_ip="$(ipconfig getifaddr en0 2>/dev/null || printf 'offline')" - printf '%s%s%s\n' "$BOLD" "$CYAN" "giancarlovizhnay@Mac" "$RESET" + printf '%s%s%s%s\n' "$BOLD" "$CYAN" "giancarlovizhnay@Mac" "$RESET" printf '%s\n' "────────────────────────" printf '%sOS%s : %s\n' "$ORANGE" "$RESET" "$os" printf '%sHost%s : %s\n' "$ORANGE" "$RESET" "$host" @@ -135,6 +199,7 @@ print_project_files() { print_window_header print_prompt +animate_ghost print_status_grid print_repo_status print_project_files