-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
executable file
·96 lines (88 loc) · 2.9 KB
/
install.sh
File metadata and controls
executable file
·96 lines (88 loc) · 2.9 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
#!/bin/bash
set -e
echo "🚀 macOS DevOps Workstation Setup"
echo "=================================="
echo ""
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo "Select installation profile:"
echo "1) Essential (brew + basic tools)"
echo "2) Full DevOps Stack (all tools + configs + macOS settings)"
echo "3) Custom (choose components)"
echo ""
read -r -p "Choice [1-3]: " profile
case $profile in
1)
echo "Installing Essential profile..."
components=("brew")
;;
2)
echo "Installing Full DevOps Stack..."
components=("brew" "cli-tools" "kubernetes" "cloud-tools" "desktop-apps" "dotfiles" "macos-prefs")
;;
3)
echo "Available components:"
echo " [1] Homebrew packages"
echo " [2] CLI tools"
echo " [3] Kubernetes tools"
echo " [4] Cloud provider tools"
echo " [5] Desktop applications"
echo " [6] Dotfiles"
echo " [7] macOS preferences"
read -r -p "Select components (e.g., 1,2,5,7): " choices
components=()
[[ $choices =~ 1 ]] && components+=("brew")
[[ $choices =~ 2 ]] && components+=("cli-tools")
[[ $choices =~ 3 ]] && components+=("kubernetes")
[[ $choices =~ 4 ]] && components+=("cloud-tools")
[[ $choices =~ 5 ]] && components+=("desktop-apps")
[[ $choices =~ 6 ]] && components+=("dotfiles")
[[ $choices =~ 7 ]] && components+=("macos-prefs")
;;
*)
echo "Invalid choice"
exit 1
;;
esac
for component in "${components[@]}"; do
echo ""
echo "INFO ==>: 📦 Installing $component..."
case $component in
brew)
if [ -f "$SCRIPT_DIR/scripts/brew.sh" ]; then
bash "$SCRIPT_DIR/scripts/brew.sh"
else
echo "INFO ==>: Installing Homebrew packages from Brewfile..."
if command -v brew >/dev/null 2>&1; then
brew bundle --file="$SCRIPT_DIR/Brewfile"
else
echo "INFO ==>: Homebrew not installed. Install from https://brew.sh"
fi
fi
;;
cli-tools)
[ -f "$SCRIPT_DIR/scripts/cli-tools.sh" ] && bash "$SCRIPT_DIR/scripts/cli-tools.sh"
;;
kubernetes)
[ -f "$SCRIPT_DIR/scripts/kubernetes.sh" ] && bash "$SCRIPT_DIR/scripts/kubernetes.sh"
;;
cloud-tools)
[ -f "$SCRIPT_DIR/scripts/cloud-tools.sh" ] && bash "$SCRIPT_DIR/scripts/cloud-tools.sh"
;;
desktop-apps)
[ -f "$SCRIPT_DIR/scripts/desktop-apps.sh" ] && bash "$SCRIPT_DIR/scripts/desktop-apps.sh"
;;
dotfiles)
[ -f "$SCRIPT_DIR/scripts/symlink-dotfiles.sh" ] && bash "$SCRIPT_DIR/scripts/symlink-dotfiles.sh"
;;
macos-prefs)
[ -f "$SCRIPT_DIR/scripts/macos-preferences.sh" ] && bash "$SCRIPT_DIR/scripts/macos-preferences.sh"
;;
esac
done
echo ""
echo "INFO ==>: ✅ Installation complete!"
echo ""
echo "INFO ==>: Next steps:"
echo "INFO ==>: - Restart your terminal"
echo "INFO ==>: - Run 'brew doctor' to verify setup"
echo "INFO ==>: - Configure cloud provider credentials"