-
Notifications
You must be signed in to change notification settings - Fork 29
Expand file tree
/
Copy pathinstall.sh
More file actions
executable file
·114 lines (98 loc) · 3.96 KB
/
Copy pathinstall.sh
File metadata and controls
executable file
·114 lines (98 loc) · 3.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/usr/bin/env bash
set -euo pipefail
export EDITOR='vim'
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
export DOTFILES=$SCRIPT_DIR
# Set TERM if not defined (for Docker/minimal environments)
export TERM="${TERM:-xterm}"
# Colors with fallback if tput fails
export red=$(tput setaf 1 2>/dev/null || echo "")
export green=$(tput setaf 2 2>/dev/null || echo "")
export yellow=$(tput setaf 3 2>/dev/null || echo "")
export blue=$(tput setaf 4 2>/dev/null || echo "")
export reset=$(tput sgr0 2>/dev/null || echo "")
# Source logging and validation libraries
source "$DOTFILES/setup/lib/logging.sh"
source "$DOTFILES/setup/lib/preflight.sh"
source "$DOTFILES/setup/lib/setup_plans.sh"
# Enable error trapping for better logging
trap_errors
#--- Funcoes
Banner() {
echo "🛸 🌎 ° 🌓 • .°• 🚀 ✯ "
echo "${green} __ __ _______ _ _ _______ ___ ___ "
echo "| |_| || || | _ | || || | | | "
echo "| || _____|| || || || ___|| | | | "
echo "| || |_____ | || |___ | | | | "
echo "| ||_____ || || ___|| |___ | |___ "
echo "| ||_|| | _____| || _ || |___ | || | "
echo "|_| |_||_______||__| |__||_______||_______||_______| "
echo " ______ _______ _______ _______ ___ ___ _______ _______ "
echo "| | | || || || | | | | || |"
echo "| _ || _ ||_ _|| ___|| | | | | ___|| _____|"
echo "| | | || | | | | | | |___ | | | | | |___ | |_____"
echo "| |_| || |_| | | | | ___|| | | |___ | ___||_____ |"
echo "| || | | | | | | | | || |___ _____| |"
echo "|______| |_______| |___| |___| |___| |_______||_______||_______|"
echo " ★ * ° 🛰 °· 🪐 "
echo ". • ° ★ • ☄ ${reset}"
echo " "
}
run_setup() {
local script_path="$1"
local script_name=$(basename "$script_path")
log_step "Starting setup: $script_name"
log_info "Script path: $script_path"
# Check if script exists
if [[ ! -f "$DOTFILES/$script_path" ]]; then
log_error "Setup script not found: $script_path"
log_summary "FAILED" "Script not found: $script_path"
exit 1
fi
# Execute setup script
if source "$DOTFILES/$script_path"; then
log_info "Setup completed: $script_name"
log_summary "COMPLETED" "$script_name"
else
log_error "Setup failed: $script_name"
log_summary "FAILED" "$script_name"
exit 1
fi
}
Menu() {
while true; do
echo "[1] - Ubuntu/Debian VPS"
echo "[2] - Archlinux VPS"
echo "[3] - Archlinux with Hyprland"
echo "[4] - Install Hacktools"
echo "[5] - Install Dev Environment (mise: Python + Node.js + pnpm)"
echo "[6] - Archlinux WSL"
echo "[7] - Claude for Bug Bounty (Skills + Agents + Caido AI)"
echo "[8] - macOS Setup"
echo "[0] - Exit"
echo
echo -n "Choose an option: "
read -r option
case $option in
1|2|3|4|5|6|7|8) setup_plan_run "$option" run_setup; break ;;
0) exit 0 ;;
*) echo "${red}Unknown option. Please try again.${reset}";;
esac
done
}
clear
Banner
log_info "========================================="
log_info " Dotfiles Installation System Started"
log_info "========================================="
log_info "Installation log: $LOG_FILE"
echo ""
# Run pre-flight checks before showing menu
log_step "System Validation"
if ! run_preflight_checks; then
echo ""
log_error "Pre-flight checks failed!"
log_summary "FAILED" "System validation checks did not pass"
exit 1
fi
Menu