Skip to content

Commit a033472

Browse files
AI Assistantclaude
andcommitted
fix(upgrade-all): add missing package managers (uv, pipx, pnpm, yarn, composer, poetry, snap, flatpak)
Stage 2 now includes all package managers: - System: apt, brew, snap, flatpak - Python: pip, uv, pipx, poetry - Node: npm, pnpm, yarn - Ruby: gem - Rust: rustup - PHP: composer Stage 4 renamed to 'Upgrade Packages' and handles: - uv tools (upgrade each tool individually) - pipx packages (upgrade-all) - cargo packages (via cargo-install-update) - gem packages (gem update) - composer global packages (composer global update) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent e31b33b commit a033472

1 file changed

Lines changed: 106 additions & 31 deletions

File tree

scripts/upgrade_all.sh

Lines changed: 106 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -134,19 +134,63 @@ stage_2_managers() {
134134
log_skip "brew (not installed)"
135135
fi
136136

137+
if command -v snap >/dev/null 2>&1; then
138+
run_cmd "snap" sudo snap refresh || log_skip "snap (failed)"
139+
else
140+
log_skip "snap (not installed)"
141+
fi
142+
143+
if command -v flatpak >/dev/null 2>&1; then
144+
run_cmd "flatpak" flatpak update -y || log_skip "flatpak (failed)"
145+
else
146+
log_skip "flatpak (not installed)"
147+
fi
148+
137149
# Language-specific package managers
138150
if command -v pip3 >/dev/null 2>&1; then
139151
run_cmd "pip" python3 -m pip install --user --upgrade pip || log_skip "pip (failed)"
140152
else
141153
log_skip "pip (not installed)"
142154
fi
143155

156+
if command -v uv >/dev/null 2>&1; then
157+
run_cmd "uv" uv self update || log_skip "uv (failed)"
158+
else
159+
log_skip "uv (not installed)"
160+
fi
161+
162+
if command -v pipx >/dev/null 2>&1; then
163+
run_cmd "pipx" pip3 install --user --upgrade pipx || log_skip "pipx (failed)"
164+
else
165+
log_skip "pipx (not installed)"
166+
fi
167+
144168
if command -v npm >/dev/null 2>&1; then
145169
run_cmd "npm" npm install -g npm@latest || log_skip "npm (failed)"
146170
else
147171
log_skip "npm (not installed)"
148172
fi
149173

174+
if command -v pnpm >/dev/null 2>&1; then
175+
if command -v corepack >/dev/null 2>&1; then
176+
run_cmd "pnpm" corepack prepare pnpm@latest --activate || log_skip "pnpm (failed)"
177+
else
178+
run_cmd "pnpm" npm install -g pnpm@latest || log_skip "pnpm (failed)"
179+
fi
180+
else
181+
log_skip "pnpm (not installed)"
182+
fi
183+
184+
if command -v yarn >/dev/null 2>&1; then
185+
if command -v corepack >/dev/null 2>&1; then
186+
run_cmd "yarn" corepack prepare yarn@stable --activate || log_skip "yarn (failed)"
187+
else
188+
run_cmd "yarn" npm install -g yarn@latest || log_skip "yarn (failed)"
189+
fi
190+
else
191+
log_skip "yarn (not installed)"
192+
fi
193+
150194
if command -v cargo >/dev/null 2>&1 && command -v rustup >/dev/null 2>&1; then
151195
run_cmd "rustup" rustup update || log_skip "rustup (failed)"
152196
else
@@ -158,6 +202,29 @@ stage_2_managers() {
158202
else
159203
log_skip "gem (not installed)"
160204
fi
205+
206+
if command -v composer >/dev/null 2>&1; then
207+
run_cmd "composer" composer self-update || log_skip "composer (failed)"
208+
else
209+
log_skip "composer (not installed)"
210+
fi
211+
212+
if command -v poetry >/dev/null 2>&1; then
213+
# Try poetry self update first (Poetry 1.2+)
214+
if poetry self update --help >/dev/null 2>&1; then
215+
run_cmd "poetry" poetry self update || log_skip "poetry (failed)"
216+
# Fallback to uv tool upgrade if poetry is managed by uv
217+
elif command -v uv >/dev/null 2>&1 && uv tool list 2>/dev/null | grep -q "^poetry"; then
218+
run_cmd "poetry" uv tool upgrade poetry || log_skip "poetry (failed)"
219+
# Fallback to pipx upgrade if poetry is managed by pipx
220+
elif command -v pipx >/dev/null 2>&1 && pipx list 2>/dev/null | grep -q "poetry"; then
221+
run_cmd "poetry" pipx upgrade poetry || log_skip "poetry (failed)"
222+
else
223+
log_skip "poetry (no automatic update method)"
224+
fi
225+
else
226+
log_skip "poetry (not installed)"
227+
fi
161228
}
162229

163230
# ============================================================================
@@ -205,61 +272,69 @@ stage_3_runtimes() {
205272
}
206273

207274
# ============================================================================
208-
# Stage 4: Upgrade User Package Managers
275+
# Stage 4: Upgrade Packages Managed by Package Managers
209276
# ============================================================================
210-
stage_4_user_managers() {
211-
log_stage 4 5 "Upgrading user package managers..."
277+
stage_4_user_packages() {
278+
log_stage 4 5 "Upgrading packages managed by package managers..."
212279

213280
cd "$PROJECT_ROOT"
214281

215-
# UV
282+
# UV tools
216283
if command -v uv >/dev/null 2>&1; then
217-
run_cmd "uv" uv self update || log_skip "uv (upgrade failed)"
284+
log_info "Upgrading uv tools..."
285+
if [ "$DRY_RUN" = "0" ]; then
286+
local tools
287+
tools="$(uv tool list 2>/dev/null | awk '{print $1}' || true)"
288+
if [ -n "$tools" ]; then
289+
local count=$(echo "$tools" | wc -l)
290+
log_info "Found $count uv tools to upgrade"
291+
while IFS= read -r tool; do
292+
[ -z "$tool" ] && continue
293+
run_cmd "uv tool: $tool" uv tool upgrade "$tool" || log_skip "uv tool: $tool (failed)"
294+
done <<< "$tools"
295+
else
296+
log_skip "uv (no tools installed)"
297+
fi
298+
else
299+
log_info "DRY-RUN: uv tool upgrade <all-tools>"
300+
fi
218301
else
219302
log_skip "uv (not installed)"
220303
fi
221304

222-
# Pipx
305+
# Pipx packages
223306
if command -v pipx >/dev/null 2>&1; then
224-
run_cmd "pipx" pip3 install --user --upgrade pipx || log_skip "pipx (upgrade failed)"
307+
run_cmd "pipx packages" pipx upgrade-all || log_skip "pipx packages (failed)"
225308
else
226309
log_skip "pipx (not installed)"
227310
fi
228311

229-
# Pnpm
230-
if command -v pnpm >/dev/null 2>&1; then
231-
if command -v corepack >/dev/null 2>&1; then
232-
run_cmd "pnpm" corepack prepare pnpm@latest --activate || log_skip "pnpm (upgrade failed)"
233-
else
234-
run_cmd "pnpm" npm install -g pnpm@latest || log_skip "pnpm (upgrade failed)"
235-
fi
236-
else
237-
log_skip "pnpm (not installed)"
238-
fi
239-
240-
# Yarn
241-
if command -v yarn >/dev/null 2>&1; then
242-
if command -v corepack >/dev/null 2>&1; then
243-
run_cmd "yarn" corepack prepare yarn@stable --activate || log_skip "yarn (upgrade failed)"
244-
else
245-
run_cmd "yarn" npm install -g yarn@latest || log_skip "yarn (upgrade failed)"
246-
fi
247-
else
248-
log_skip "yarn (not installed)"
249-
fi
250-
251312
# Cargo install-update
252313
if command -v cargo >/dev/null 2>&1; then
253314
if ! command -v cargo-install-update >/dev/null 2>&1; then
254315
run_cmd "cargo-update tool" cargo install cargo-update || log_skip "cargo-update (install failed)"
255316
fi
256317

257318
if command -v cargo-install-update >/dev/null 2>&1; then
258-
run_cmd "cargo packages" cargo install-update -a || log_skip "cargo packages (upgrade failed)"
319+
run_cmd "cargo packages" cargo install-update -a || log_skip "cargo packages (failed)"
259320
fi
260321
else
261322
log_skip "cargo (not installed)"
262323
fi
324+
325+
# Gem packages
326+
if command -v gem >/dev/null 2>&1; then
327+
run_cmd "gem packages" gem update || log_skip "gem packages (failed)"
328+
else
329+
log_skip "gem (not installed)"
330+
fi
331+
332+
# Composer global packages
333+
if command -v composer >/dev/null 2>&1; then
334+
run_cmd "composer packages" composer global update || log_skip "composer packages (failed)"
335+
else
336+
log_skip "composer (not installed)"
337+
fi
263338
}
264339

265340
# ============================================================================
@@ -312,7 +387,7 @@ main() {
312387
stage_1_refresh || true
313388
stage_2_managers || true
314389
stage_3_runtimes || true
315-
stage_4_user_managers || true
390+
stage_4_user_packages || true
316391
stage_5_tools || true
317392

318393
# Summary

0 commit comments

Comments
 (0)