-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathverify.sh
More file actions
executable file
·159 lines (150 loc) · 3.01 KB
/
verify.sh
File metadata and controls
executable file
·159 lines (150 loc) · 3.01 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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#!/bin/bash
# Verification script — checks all Homebrew casks and formulas exist before install
echo "Verifying Homebrew casks and formulas..."
echo ""
if ! command -v brew &> /dev/null; then
echo "Homebrew is not installed."
exit 1
fi
echo "Updating Homebrew and adding taps..."
brew update > /dev/null 2>&1
brew tap steipete/tap 2>/dev/null || true
brew tap zackbart/tap 2>/dev/null || true
brew tap yakitrak/yakitrak 2>/dev/null || true
brew tap stripe/stripe-cli 2>/dev/null || true
brew tap supabase/tap 2>/dev/null || true
CASK_APPS=(
"google-chrome"
"android-studio"
"docker-desktop"
"ghostty"
"lm-studio"
"visual-studio-code"
"claude"
"cmux"
"obsidian"
"notion-calendar"
"superset"
"appcleaner"
"balenaetcher"
"clop"
"cyberduck"
"handy"
"localsend"
"rustdesk"
"send-to-kindle"
"wifiman"
"anki"
"handbrake-app"
"obs"
"spotify"
"vlc"
"mitmproxy"
"mullvad-vpn"
"ngrok"
"termius"
"twingate"
"vb-cable"
"discord"
"zoom"
"beekeeper-studio"
"heroic"
"utm"
"claude-code"
"codex"
"cursor-cli"
"font-jetbrains-mono"
"font-jetbrains-mono-nerd-font"
"font-symbols-only-nerd-font"
)
CLI_TOOLS=(
"starship"
"zoxide"
"fzf"
"tmux"
"bat"
"eza"
"fd"
"ripgrep"
"difftastic"
"gh"
"lazygit"
"yazi"
"superfile"
"bottom"
"lazydocker"
"asdf"
"node"
"pnpm"
"go"
"openjdk@17"
"python@3.14"
"uv"
"typescript"
"typescript-language-server"
"pyright"
"jq"
"duckdb"
"ffmpeg"
"imagemagick"
"sox"
"pandoc"
"poppler"
"supabase"
"stripe"
"railway"
"firebase-cli"
"sentry-cli"
"trufflehog"
"gnupg"
"certbot"
"chafa"
"resvg"
"libpq"
"cloc"
"happy-coder"
"sevenzip"
"opencode"
"mas"
"steipete/tap/imsg"
"steipete/tap/summarize"
"zackbart/tap/cleenup"
"zackbart/tap/seer"
"zackbart/tap/werk"
"yakitrak/yakitrak/obsidian-cli"
)
echo "Checking casks..."
echo "----------------------------------------"
FAILED_CASKS=()
for app in "${CASK_APPS[@]}"; do
if brew info --cask "$app" &> /dev/null; then
echo " $app"
else
echo " MISSING: $app"
FAILED_CASKS+=("$app")
fi
done
echo ""
echo "Checking formulas..."
echo "----------------------------------------"
FAILED_FORMULAS=()
for tool in "${CLI_TOOLS[@]}"; do
if brew info "$tool" &> /dev/null; then
echo " $tool"
else
echo " MISSING: $tool"
FAILED_FORMULAS+=("$tool")
fi
done
echo ""
echo "Summary"
echo "----------------------------------------"
if [ ${#FAILED_CASKS[@]} -eq 0 ] && [ ${#FAILED_FORMULAS[@]} -eq 0 ]; then
echo "All casks and formulas are available."
exit 0
else
echo "Some items were not found:"
[ ${#FAILED_CASKS[@]} -gt 0 ] && echo " Casks: ${FAILED_CASKS[*]}"
[ ${#FAILED_FORMULAS[@]} -gt 0 ] && echo " Formulas: ${FAILED_FORMULAS[*]}"
exit 1
fi