Skip to content

Commit 9082475

Browse files
committed
fix the script to work also on older version of bash
1 parent 8e9d501 commit 9082475

File tree

1 file changed

+40
-31
lines changed

1 file changed

+40
-31
lines changed

scripts/uninstaller.sh

Lines changed: 40 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,12 @@ read_from_tty() {
5353
}
5454

5555
# Summary tracking
56-
declare -A REMOVAL_SUMMARY
57-
REMOVAL_SUMMARY["workflows_removed"]=false
58-
REMOVAL_SUMMARY["workflows_status"]=""
59-
REMOVAL_SUMMARY["secrets_removed"]=()
60-
REMOVAL_SUMMARY["secrets_failed"]=()
61-
REMOVAL_SUMMARY["pat_removed"]=false
62-
REMOVAL_SUMMARY["pat_status"]=""
56+
WORKFLOWS_REMOVED=false
57+
WORKFLOWS_STATUS=""
58+
SECRETS_REMOVED=""
59+
SECRETS_FAILED=""
60+
PAT_REMOVED=false
61+
PAT_STATUS=""
6362

6463
# ASCII Art Header
6564
show_header() {
@@ -227,7 +226,7 @@ fi
227226

228227
if [ "$WORKFLOWS_EXIST" = false ]; then
229228
log_warning "No Claude Code workflow files found in current directory"
230-
REMOVAL_SUMMARY["workflows_status"]="No workflow files found to remove"
229+
WORKFLOWS_STATUS="No workflow files found to remove"
231230
else
232231
# Step 5: Git repository setup for workflow removal
233232
log_step "STEP 5: Removing Workflow Files"
@@ -273,7 +272,7 @@ else
273272
MAIN_BRANCH="master"
274273
else
275274
log_error "No main/master branch found"
276-
REMOVAL_SUMMARY["workflows_status"]="Failed: No main/master branch"
275+
WORKFLOWS_STATUS="Failed: No main/master branch"
277276
WORKFLOWS_EXIST=false
278277
fi
279278

@@ -337,8 +336,8 @@ else
337336
Co-authored-by: grll <noreply@github.com>"
338337

339338
log_success "Workflow removal committed"
340-
REMOVAL_SUMMARY["workflows_removed"]=true
341-
REMOVAL_SUMMARY["workflows_status"]="Successfully removed and committed"
339+
WORKFLOWS_REMOVED=true
340+
WORKFLOWS_STATUS="Successfully removed and committed"
342341

343342
# Push to remote
344343
log_info "Pushing to remote repository..."
@@ -347,17 +346,17 @@ Co-authored-by: grll <noreply@github.com>"
347346
else
348347
log_warning "Failed to push. You may need to push manually:"
349348
echo " git push origin $MAIN_BRANCH"
350-
REMOVAL_SUMMARY["workflows_status"]="Removed locally but failed to push"
349+
WORKFLOWS_STATUS="Removed locally but failed to push"
351350
fi
352351
else
353352
log_warning "Workflow files removed locally but not committed"
354-
REMOVAL_SUMMARY["workflows_status"]="Removed locally but not committed"
353+
WORKFLOWS_STATUS="Removed locally but not committed"
355354

356355
# Restore the files since user didn't consent
357356
git checkout -- "${WORKFLOW_FILES[@]}"
358357
log_info "Restored workflow files since commit was declined"
359-
REMOVAL_SUMMARY["workflows_removed"]=false
360-
REMOVAL_SUMMARY["workflows_status"]="Removal cancelled by user"
358+
WORKFLOWS_REMOVED=false
359+
WORKFLOWS_STATUS="Removal cancelled by user"
361360
fi
362361

363362
# Return to original branch
@@ -402,11 +401,19 @@ remove_secret() {
402401
log_info "Removing secret: $secret_name"
403402
if gh secret delete "$secret_name" --repo "$REPO_NAME" 2>/dev/null; then
404403
log_success "Removed: $secret_name"
405-
REMOVAL_SUMMARY["secrets_removed"]+=("$secret_name")
404+
if [ -z "$SECRETS_REMOVED" ]; then
405+
SECRETS_REMOVED="$secret_name"
406+
else
407+
SECRETS_REMOVED="$SECRETS_REMOVED,$secret_name"
408+
fi
406409
return 0
407410
else
408411
log_error "Failed to remove: $secret_name"
409-
REMOVAL_SUMMARY["secrets_failed"]+=("$secret_name")
412+
if [ -z "$SECRETS_FAILED" ]; then
413+
SECRETS_FAILED="$secret_name"
414+
else
415+
SECRETS_FAILED="$SECRETS_FAILED,$secret_name"
416+
fi
410417
return 1
411418
fi
412419
else
@@ -431,47 +438,49 @@ if secret_exists "SECRETS_ADMIN_PAT"; then
431438

432439
if [[ "$REMOVE_PAT" =~ ^[Yy]$ ]]; then
433440
if remove_secret "SECRETS_ADMIN_PAT"; then
434-
REMOVAL_SUMMARY["pat_removed"]=true
435-
REMOVAL_SUMMARY["pat_status"]="Successfully removed"
441+
PAT_REMOVED=true
442+
PAT_STATUS="Successfully removed"
436443
else
437-
REMOVAL_SUMMARY["pat_status"]="Failed to remove"
444+
PAT_STATUS="Failed to remove"
438445
fi
439446
else
440447
log_info "Keeping SECRETS_ADMIN_PAT"
441-
REMOVAL_SUMMARY["pat_status"]="Kept by user choice"
448+
PAT_STATUS="Kept by user choice"
442449
fi
443450
else
444451
log_info "SECRETS_ADMIN_PAT not found"
445-
REMOVAL_SUMMARY["pat_status"]="Not found"
452+
PAT_STATUS="Not found"
446453
fi
447454

448455
# Step 7: Summary
449456
log_step "UNINSTALLATION SUMMARY"
450457
echo
451458
echo -e "${BOLD}Workflow Files:${NC}"
452-
if [ "${REMOVAL_SUMMARY["workflows_removed"]}" = true ]; then
453-
echo -e " ${GREEN}${NC} Status: ${REMOVAL_SUMMARY["workflows_status"]}"
459+
if [ "$WORKFLOWS_REMOVED" = true ]; then
460+
echo -e " ${GREEN}${NC} Status: $WORKFLOWS_STATUS"
454461
else
455-
echo -e " ${YELLOW}${NC} Status: ${REMOVAL_SUMMARY["workflows_status"]}"
462+
echo -e " ${YELLOW}${NC} Status: $WORKFLOWS_STATUS"
456463
fi
457464

458465
echo
459466
echo -e "${BOLD}GitHub Secrets:${NC}"
460-
if [ ${#REMOVAL_SUMMARY["secrets_removed"][@]} -gt 0 ]; then
467+
if [ -n "$SECRETS_REMOVED" ]; then
461468
echo -e " ${GREEN}${NC} Removed:"
462-
for secret in "${REMOVAL_SUMMARY["secrets_removed"][@]}"; do
469+
IFS=',' read -ra REMOVED_ARRAY <<< "$SECRETS_REMOVED"
470+
for secret in "${REMOVED_ARRAY[@]}"; do
463471
echo "$secret"
464472
done
465473
fi
466474

467-
if [ ${#REMOVAL_SUMMARY["secrets_failed"][@]} -gt 0 ]; then
475+
if [ -n "$SECRETS_FAILED" ]; then
468476
echo -e " ${RED}${NC} Failed to remove:"
469-
for secret in "${REMOVAL_SUMMARY["secrets_failed"][@]}"; do
477+
IFS=',' read -ra FAILED_ARRAY <<< "$SECRETS_FAILED"
478+
for secret in "${FAILED_ARRAY[@]}"; do
470479
echo "$secret"
471480
done
472481
fi
473482

474-
echo -e " ${YELLOW}${NC} SECRETS_ADMIN_PAT: ${REMOVAL_SUMMARY["pat_status"]}"
483+
echo -e " ${YELLOW}${NC} SECRETS_ADMIN_PAT: $PAT_STATUS"
475484

476485
echo
477486
echo -e "${BOLD}Additional Notes:${NC}"
@@ -484,7 +493,7 @@ log_success "Uninstallation process complete"
484493

485494
# Final message
486495
echo
487-
if [ "${REMOVAL_SUMMARY["workflows_removed"]}" = true ] && [ ${#REMOVAL_SUMMARY["secrets_removed"][@]} -gt 0 ]; then
496+
if [ "$WORKFLOWS_REMOVED" = true ] && [ -n "$SECRETS_REMOVED" ]; then
488497
echo -e "${GREEN}Claude Code OAuth has been successfully removed from $REPO_NAME${NC}"
489498
else
490499
echo -e "${YELLOW}Claude Code OAuth was partially removed from $REPO_NAME${NC}"

0 commit comments

Comments
 (0)