feat: Implement backup TUI with enhanced refresh functionality and consistent build system

This commit is contained in:
Peter Wood
2025-06-04 08:57:09 -04:00
parent 780e78f132
commit 8b514ac0b2
8 changed files with 508 additions and 60 deletions

74
tui/build.sh Executable file
View File

@@ -0,0 +1,74 @@
#!/bin/bash
# Build script for backup-tui
# Ensures consistent binary naming across build sessions
set -e
# Colors for output
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# Configuration
BINARY_NAME="backup-tui"
SOURCE_FILE="main.go"
TUI_DIR="/home/acedanger/shell/tui"
SHELL_DIR="/home/acedanger/shell"
# Print colored output
print_color() {
local color="$1"
local message="$2"
case "$color" in
"green") printf "${GREEN}%s${NC}\n" "$message" ;;
"yellow") printf "${YELLOW}%s${NC}\n" "$message" ;;
"red") printf "${RED}%s${NC}\n" "$message" ;;
*) printf "%s\n" "$message" ;;
esac
}
print_color "yellow" "🔨 Building Backup TUI..."
# Change to TUI directory
cd "$TUI_DIR"
# Check if Go is available
if ! command -v go &> /dev/null; then
print_color "red" "❌ Go is not installed or not in PATH"
print_color "yellow" "Please install Go 1.19+ or set up the Go environment"
exit 1
fi
# Ensure dependencies are available
print_color "yellow" "📦 Checking Go dependencies..."
if ! go mod tidy; then
print_color "red" "❌ Failed to download Go dependencies"
exit 1
fi
# Build the binary with consistent naming
print_color "yellow" "🔧 Building ${BINARY_NAME}..."
if go build -o "$BINARY_NAME" "$SOURCE_FILE"; then
print_color "green" "✅ Successfully built ${BINARY_NAME}"
else
print_color "red" "❌ Build failed"
exit 1
fi
# Copy to shell directory for easy access
if cp "$BINARY_NAME" "$SHELL_DIR/$BINARY_NAME"; then
print_color "green" "✅ Copied binary to shell directory"
else
print_color "yellow" "⚠️ Could not copy to shell directory"
fi
# Make executable
chmod +x "$BINARY_NAME"
chmod +x "$SHELL_DIR/$BINARY_NAME" 2>/dev/null || true
print_color "green" "🎉 Build completed successfully!"
print_color "yellow" "Binary location: $TUI_DIR/$BINARY_NAME"
print_color "yellow" "Also available: $SHELL_DIR/$BINARY_NAME"
print_color "yellow" "Launch with: ./backup-tui"