aidevops 2.52.1 → 2.53.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/VERSION +1 -1
- package/aidevops.sh +15 -9
- package/package.json +4 -4
- package/scripts/npm-postinstall.js +6 -7
- package/setup.sh +1 -1
- package/templates/deploy-templates.sh +144 -0
- package/templates/home/.agent/README.md +33 -0
- package/templates/home/AGENTS.md +96 -0
- package/templates/home/git/.agent/README.md +48 -0
- package/templates/home/git/AGENTS.md +97 -0
- package/templates/standard-functions.sh +179 -0
- package/templates/wordpress-performance-workflow.md +217 -0
- package/.agent/AGENTS.md +0 -614
- package/.agent/accounts.md +0 -65
- package/.agent/aidevops/add-new-mcp-to-aidevops.md +0 -456
- package/.agent/aidevops/api-integrations.md +0 -335
- package/.agent/aidevops/architecture.md +0 -510
- package/.agent/aidevops/configs.md +0 -274
- package/.agent/aidevops/docs.md +0 -244
- package/.agent/aidevops/extension.md +0 -311
- package/.agent/aidevops/mcp-integrations.md +0 -340
- package/.agent/aidevops/mcp-troubleshooting.md +0 -162
- package/.agent/aidevops/memory-patterns.md +0 -172
- package/.agent/aidevops/providers.md +0 -217
- package/.agent/aidevops/recommendations.md +0 -321
- package/.agent/aidevops/requirements.md +0 -301
- package/.agent/aidevops/resources.md +0 -214
- package/.agent/aidevops/security-requirements.md +0 -174
- package/.agent/aidevops/security.md +0 -350
- package/.agent/aidevops/service-links.md +0 -400
- package/.agent/aidevops/services.md +0 -357
- package/.agent/aidevops/setup.md +0 -153
- package/.agent/aidevops/troubleshooting.md +0 -389
- package/.agent/aidevops.md +0 -124
- package/.agent/build-plus.md +0 -244
- package/.agent/content/guidelines.md +0 -109
- package/.agent/content.md +0 -87
- package/.agent/health.md +0 -59
- package/.agent/legal.md +0 -59
- package/.agent/loop-state/full-loop.local.md +0 -16
- package/.agent/loop-state/ralph-loop.local.md +0 -10
- package/.agent/marketing.md +0 -440
- package/.agent/memory/README.md +0 -260
- package/.agent/onboarding.md +0 -796
- package/.agent/plan-plus.md +0 -245
- package/.agent/research.md +0 -100
- package/.agent/sales.md +0 -333
- package/.agent/scripts/101domains-helper.sh +0 -701
- package/.agent/scripts/add-missing-returns.sh +0 -140
- package/.agent/scripts/agent-browser-helper.sh +0 -311
- package/.agent/scripts/agno-setup.sh +0 -712
- package/.agent/scripts/ahrefs-mcp-wrapper.js +0 -168
- package/.agent/scripts/aidevops-update-check.sh +0 -71
- package/.agent/scripts/ampcode-cli.sh +0 -522
- package/.agent/scripts/auto-version-bump.sh +0 -156
- package/.agent/scripts/autogen-helper.sh +0 -512
- package/.agent/scripts/beads-sync-helper.sh +0 -596
- package/.agent/scripts/closte-helper.sh +0 -5
- package/.agent/scripts/cloudron-helper.sh +0 -321
- package/.agent/scripts/codacy-cli-chunked.sh +0 -581
- package/.agent/scripts/codacy-cli.sh +0 -442
- package/.agent/scripts/code-audit-helper.sh +0 -5
- package/.agent/scripts/coderabbit-cli.sh +0 -417
- package/.agent/scripts/coderabbit-pro-analysis.sh +0 -238
- package/.agent/scripts/commands/code-simplifier.md +0 -86
- package/.agent/scripts/commands/full-loop.md +0 -246
- package/.agent/scripts/commands/postflight-loop.md +0 -103
- package/.agent/scripts/commands/recall.md +0 -182
- package/.agent/scripts/commands/remember.md +0 -132
- package/.agent/scripts/commands/save-todo.md +0 -175
- package/.agent/scripts/commands/session-review.md +0 -154
- package/.agent/scripts/comprehensive-quality-fix.sh +0 -106
- package/.agent/scripts/context-builder-helper.sh +0 -522
- package/.agent/scripts/coolify-cli-helper.sh +0 -674
- package/.agent/scripts/coolify-helper.sh +0 -380
- package/.agent/scripts/crawl4ai-examples.sh +0 -401
- package/.agent/scripts/crawl4ai-helper.sh +0 -1078
- package/.agent/scripts/crewai-helper.sh +0 -681
- package/.agent/scripts/dev-browser-helper.sh +0 -513
- package/.agent/scripts/dns-helper.sh +0 -396
- package/.agent/scripts/domain-research-helper.sh +0 -917
- package/.agent/scripts/dspy-helper.sh +0 -285
- package/.agent/scripts/dspyground-helper.sh +0 -291
- package/.agent/scripts/eeat-score-helper.sh +0 -1242
- package/.agent/scripts/efficient-return-fix.sh +0 -92
- package/.agent/scripts/extract-opencode-prompts.sh +0 -128
- package/.agent/scripts/find-missing-returns.sh +0 -113
- package/.agent/scripts/fix-auth-headers.sh +0 -104
- package/.agent/scripts/fix-common-strings.sh +0 -254
- package/.agent/scripts/fix-content-type.sh +0 -100
- package/.agent/scripts/fix-error-messages.sh +0 -130
- package/.agent/scripts/fix-misplaced-returns.sh +0 -74
- package/.agent/scripts/fix-remaining-literals.sh +0 -152
- package/.agent/scripts/fix-return-statements.sh +0 -41
- package/.agent/scripts/fix-s131-default-cases.sh +0 -249
- package/.agent/scripts/fix-sc2155-simple.sh +0 -102
- package/.agent/scripts/fix-shellcheck-critical.sh +0 -187
- package/.agent/scripts/fix-string-literals.sh +0 -273
- package/.agent/scripts/full-loop-helper.sh +0 -773
- package/.agent/scripts/generate-opencode-agents.sh +0 -497
- package/.agent/scripts/generate-opencode-commands.sh +0 -1629
- package/.agent/scripts/generate-skills.sh +0 -366
- package/.agent/scripts/git-platforms-helper.sh +0 -640
- package/.agent/scripts/gitea-cli-helper.sh +0 -743
- package/.agent/scripts/github-cli-helper.sh +0 -702
- package/.agent/scripts/gitlab-cli-helper.sh +0 -682
- package/.agent/scripts/gsc-add-user-helper.sh +0 -325
- package/.agent/scripts/gsc-sitemap-helper.sh +0 -678
- package/.agent/scripts/hetzner-helper.sh +0 -485
- package/.agent/scripts/hostinger-helper.sh +0 -229
- package/.agent/scripts/keyword-research-helper.sh +0 -1815
- package/.agent/scripts/langflow-helper.sh +0 -544
- package/.agent/scripts/linkedin-automation.py +0 -241
- package/.agent/scripts/linter-manager.sh +0 -599
- package/.agent/scripts/linters-local.sh +0 -434
- package/.agent/scripts/list-keys-helper.sh +0 -488
- package/.agent/scripts/local-browser-automation.py +0 -339
- package/.agent/scripts/localhost-helper.sh +0 -744
- package/.agent/scripts/loop-common.sh +0 -806
- package/.agent/scripts/mainwp-helper.sh +0 -728
- package/.agent/scripts/markdown-formatter.sh +0 -338
- package/.agent/scripts/markdown-lint-fix.sh +0 -311
- package/.agent/scripts/mass-fix-returns.sh +0 -58
- package/.agent/scripts/mcp-diagnose.sh +0 -167
- package/.agent/scripts/mcp-inspector-helper.sh +0 -449
- package/.agent/scripts/memory-helper.sh +0 -650
- package/.agent/scripts/monitor-code-review.sh +0 -255
- package/.agent/scripts/onboarding-helper.sh +0 -706
- package/.agent/scripts/opencode-github-setup-helper.sh +0 -797
- package/.agent/scripts/opencode-test-helper.sh +0 -213
- package/.agent/scripts/pagespeed-helper.sh +0 -464
- package/.agent/scripts/pandoc-helper.sh +0 -362
- package/.agent/scripts/postflight-check.sh +0 -555
- package/.agent/scripts/pre-commit-hook.sh +0 -259
- package/.agent/scripts/pre-edit-check.sh +0 -169
- package/.agent/scripts/qlty-cli.sh +0 -356
- package/.agent/scripts/quality-cli-manager.sh +0 -525
- package/.agent/scripts/quality-feedback-helper.sh +0 -462
- package/.agent/scripts/quality-fix.sh +0 -263
- package/.agent/scripts/quality-loop-helper.sh +0 -1108
- package/.agent/scripts/ralph-loop-helper.sh +0 -836
- package/.agent/scripts/ralph-upstream-check.sh +0 -341
- package/.agent/scripts/secretlint-helper.sh +0 -847
- package/.agent/scripts/servers-helper.sh +0 -241
- package/.agent/scripts/ses-helper.sh +0 -619
- package/.agent/scripts/session-review-helper.sh +0 -404
- package/.agent/scripts/setup-linters-wizard.sh +0 -379
- package/.agent/scripts/setup-local-api-keys.sh +0 -330
- package/.agent/scripts/setup-mcp-integrations.sh +0 -472
- package/.agent/scripts/shared-constants.sh +0 -246
- package/.agent/scripts/site-crawler-helper.sh +0 -1487
- package/.agent/scripts/snyk-helper.sh +0 -940
- package/.agent/scripts/sonarcloud-autofix.sh +0 -193
- package/.agent/scripts/sonarcloud-cli.sh +0 -191
- package/.agent/scripts/sonarscanner-cli.sh +0 -455
- package/.agent/scripts/spaceship-helper.sh +0 -747
- package/.agent/scripts/stagehand-helper.sh +0 -321
- package/.agent/scripts/stagehand-python-helper.sh +0 -321
- package/.agent/scripts/stagehand-python-setup.sh +0 -441
- package/.agent/scripts/stagehand-setup.sh +0 -439
- package/.agent/scripts/system-cleanup.sh +0 -340
- package/.agent/scripts/terminal-title-helper.sh +0 -388
- package/.agent/scripts/terminal-title-setup.sh +0 -549
- package/.agent/scripts/test-stagehand-both-integration.sh +0 -317
- package/.agent/scripts/test-stagehand-integration.sh +0 -309
- package/.agent/scripts/test-stagehand-python-integration.sh +0 -341
- package/.agent/scripts/todo-ready.sh +0 -263
- package/.agent/scripts/tool-version-check.sh +0 -362
- package/.agent/scripts/toon-helper.sh +0 -469
- package/.agent/scripts/twilio-helper.sh +0 -917
- package/.agent/scripts/updown-helper.sh +0 -279
- package/.agent/scripts/validate-mcp-integrations.sh +0 -250
- package/.agent/scripts/validate-version-consistency.sh +0 -131
- package/.agent/scripts/vaultwarden-helper.sh +0 -597
- package/.agent/scripts/vercel-cli-helper.sh +0 -816
- package/.agent/scripts/verify-mirrors.sh +0 -169
- package/.agent/scripts/version-manager.sh +0 -831
- package/.agent/scripts/webhosting-helper.sh +0 -471
- package/.agent/scripts/webhosting-verify.sh +0 -238
- package/.agent/scripts/wordpress-mcp-helper.sh +0 -508
- package/.agent/scripts/worktree-helper.sh +0 -595
- package/.agent/scripts/worktree-sessions.sh +0 -577
- package/.agent/seo/dataforseo.md +0 -215
- package/.agent/seo/domain-research.md +0 -532
- package/.agent/seo/eeat-score.md +0 -659
- package/.agent/seo/google-search-console.md +0 -366
- package/.agent/seo/gsc-sitemaps.md +0 -282
- package/.agent/seo/keyword-research.md +0 -521
- package/.agent/seo/serper.md +0 -278
- package/.agent/seo/site-crawler.md +0 -387
- package/.agent/seo.md +0 -236
- package/.agent/services/accounting/quickfile.md +0 -159
- package/.agent/services/communications/telfon.md +0 -470
- package/.agent/services/communications/twilio.md +0 -569
- package/.agent/services/crm/fluentcrm.md +0 -449
- package/.agent/services/email/ses.md +0 -399
- package/.agent/services/hosting/101domains.md +0 -378
- package/.agent/services/hosting/closte.md +0 -177
- package/.agent/services/hosting/cloudflare.md +0 -251
- package/.agent/services/hosting/cloudron.md +0 -478
- package/.agent/services/hosting/dns-providers.md +0 -335
- package/.agent/services/hosting/domain-purchasing.md +0 -344
- package/.agent/services/hosting/hetzner.md +0 -327
- package/.agent/services/hosting/hostinger.md +0 -287
- package/.agent/services/hosting/localhost.md +0 -419
- package/.agent/services/hosting/spaceship.md +0 -353
- package/.agent/services/hosting/webhosting.md +0 -330
- package/.agent/social-media.md +0 -69
- package/.agent/templates/plans-template.md +0 -114
- package/.agent/templates/prd-template.md +0 -129
- package/.agent/templates/tasks-template.md +0 -108
- package/.agent/templates/todo-template.md +0 -89
- package/.agent/tools/ai-assistants/agno.md +0 -471
- package/.agent/tools/ai-assistants/capsolver.md +0 -326
- package/.agent/tools/ai-assistants/configuration.md +0 -221
- package/.agent/tools/ai-assistants/overview.md +0 -209
- package/.agent/tools/ai-assistants/status.md +0 -171
- package/.agent/tools/ai-assistants/windsurf.md +0 -193
- package/.agent/tools/ai-orchestration/autogen.md +0 -406
- package/.agent/tools/ai-orchestration/crewai.md +0 -445
- package/.agent/tools/ai-orchestration/langflow.md +0 -405
- package/.agent/tools/ai-orchestration/openprose.md +0 -487
- package/.agent/tools/ai-orchestration/overview.md +0 -362
- package/.agent/tools/ai-orchestration/packaging.md +0 -647
- package/.agent/tools/browser/agent-browser.md +0 -464
- package/.agent/tools/browser/browser-automation.md +0 -400
- package/.agent/tools/browser/chrome-devtools.md +0 -282
- package/.agent/tools/browser/crawl4ai-integration.md +0 -422
- package/.agent/tools/browser/crawl4ai-resources.md +0 -277
- package/.agent/tools/browser/crawl4ai-usage.md +0 -416
- package/.agent/tools/browser/crawl4ai.md +0 -585
- package/.agent/tools/browser/dev-browser.md +0 -341
- package/.agent/tools/browser/pagespeed.md +0 -260
- package/.agent/tools/browser/playwright.md +0 -266
- package/.agent/tools/browser/playwriter.md +0 -310
- package/.agent/tools/browser/stagehand-examples.md +0 -456
- package/.agent/tools/browser/stagehand-python.md +0 -483
- package/.agent/tools/browser/stagehand.md +0 -421
- package/.agent/tools/build-agent/agent-review.md +0 -224
- package/.agent/tools/build-agent/build-agent.md +0 -784
- package/.agent/tools/build-mcp/aidevops-plugin.md +0 -476
- package/.agent/tools/build-mcp/api-wrapper.md +0 -445
- package/.agent/tools/build-mcp/build-mcp.md +0 -240
- package/.agent/tools/build-mcp/deployment.md +0 -401
- package/.agent/tools/build-mcp/server-patterns.md +0 -632
- package/.agent/tools/build-mcp/transports.md +0 -366
- package/.agent/tools/code-review/auditing.md +0 -383
- package/.agent/tools/code-review/automation.md +0 -219
- package/.agent/tools/code-review/best-practices.md +0 -203
- package/.agent/tools/code-review/codacy.md +0 -151
- package/.agent/tools/code-review/code-simplifier.md +0 -174
- package/.agent/tools/code-review/code-standards.md +0 -309
- package/.agent/tools/code-review/coderabbit.md +0 -101
- package/.agent/tools/code-review/management.md +0 -155
- package/.agent/tools/code-review/qlty.md +0 -248
- package/.agent/tools/code-review/secretlint.md +0 -565
- package/.agent/tools/code-review/setup.md +0 -250
- package/.agent/tools/code-review/snyk.md +0 -563
- package/.agent/tools/code-review/tools.md +0 -230
- package/.agent/tools/content/summarize.md +0 -353
- package/.agent/tools/context/augment-context-engine.md +0 -468
- package/.agent/tools/context/context-builder-agent.md +0 -76
- package/.agent/tools/context/context-builder.md +0 -375
- package/.agent/tools/context/context7.md +0 -371
- package/.agent/tools/context/dspy.md +0 -302
- package/.agent/tools/context/dspyground.md +0 -374
- package/.agent/tools/context/llm-tldr.md +0 -219
- package/.agent/tools/context/osgrep.md +0 -488
- package/.agent/tools/context/prompt-optimization.md +0 -338
- package/.agent/tools/context/toon.md +0 -292
- package/.agent/tools/conversion/pandoc.md +0 -304
- package/.agent/tools/credentials/api-key-management.md +0 -154
- package/.agent/tools/credentials/api-key-setup.md +0 -224
- package/.agent/tools/credentials/environment-variables.md +0 -180
- package/.agent/tools/credentials/vaultwarden.md +0 -382
- package/.agent/tools/data-extraction/outscraper.md +0 -974
- package/.agent/tools/deployment/coolify-cli.md +0 -388
- package/.agent/tools/deployment/coolify-setup.md +0 -353
- package/.agent/tools/deployment/coolify.md +0 -345
- package/.agent/tools/deployment/vercel.md +0 -390
- package/.agent/tools/git/authentication.md +0 -132
- package/.agent/tools/git/gitea-cli.md +0 -193
- package/.agent/tools/git/github-actions.md +0 -207
- package/.agent/tools/git/github-cli.md +0 -223
- package/.agent/tools/git/gitlab-cli.md +0 -190
- package/.agent/tools/git/opencode-github-security.md +0 -350
- package/.agent/tools/git/opencode-github.md +0 -328
- package/.agent/tools/git/opencode-gitlab.md +0 -252
- package/.agent/tools/git/security.md +0 -196
- package/.agent/tools/git.md +0 -207
- package/.agent/tools/opencode/oh-my-opencode.md +0 -375
- package/.agent/tools/opencode/opencode-anthropic-auth.md +0 -446
- package/.agent/tools/opencode/opencode.md +0 -651
- package/.agent/tools/social-media/bird.md +0 -437
- package/.agent/tools/task-management/beads.md +0 -336
- package/.agent/tools/terminal/terminal-title.md +0 -251
- package/.agent/tools/ui/shadcn.md +0 -196
- package/.agent/tools/ui/ui-skills.md +0 -115
- package/.agent/tools/wordpress/localwp.md +0 -311
- package/.agent/tools/wordpress/mainwp.md +0 -391
- package/.agent/tools/wordpress/scf.md +0 -527
- package/.agent/tools/wordpress/wp-admin.md +0 -729
- package/.agent/tools/wordpress/wp-dev.md +0 -940
- package/.agent/tools/wordpress/wp-preferred.md +0 -398
- package/.agent/tools/wordpress.md +0 -95
- package/.agent/workflows/branch/bugfix.md +0 -63
- package/.agent/workflows/branch/chore.md +0 -95
- package/.agent/workflows/branch/experiment.md +0 -115
- package/.agent/workflows/branch/feature.md +0 -59
- package/.agent/workflows/branch/hotfix.md +0 -98
- package/.agent/workflows/branch/refactor.md +0 -92
- package/.agent/workflows/branch/release.md +0 -96
- package/.agent/workflows/branch.md +0 -347
- package/.agent/workflows/bug-fixing.md +0 -267
- package/.agent/workflows/changelog.md +0 -129
- package/.agent/workflows/code-audit-remote.md +0 -279
- package/.agent/workflows/conversation-starter.md +0 -69
- package/.agent/workflows/error-feedback.md +0 -578
- package/.agent/workflows/feature-development.md +0 -355
- package/.agent/workflows/git-workflow.md +0 -702
- package/.agent/workflows/multi-repo-workspace.md +0 -268
- package/.agent/workflows/plans.md +0 -709
- package/.agent/workflows/postflight.md +0 -604
- package/.agent/workflows/pr.md +0 -571
- package/.agent/workflows/preflight.md +0 -278
- package/.agent/workflows/ralph-loop.md +0 -773
- package/.agent/workflows/release.md +0 -498
- package/.agent/workflows/session-manager.md +0 -254
- package/.agent/workflows/session-review.md +0 -311
- package/.agent/workflows/sql-migrations.md +0 -631
- package/.agent/workflows/version-bump.md +0 -283
- package/.agent/workflows/wiki-update.md +0 -333
- package/.agent/workflows/worktree.md +0 -477
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# shellcheck disable=SC2034,SC2155
|
|
3
|
-
# Fix SonarCloud S131: Add default case (*) to case statements
|
|
4
|
-
#
|
|
5
|
-
# Usage: ./fix-s131-default-cases.sh [--dry-run] [--file <path>] [--all]
|
|
6
|
-
#
|
|
7
|
-
# This script finds case statements missing a default (*) case and adds one.
|
|
8
|
-
|
|
9
|
-
set -euo pipefail
|
|
10
|
-
|
|
11
|
-
# Colors
|
|
12
|
-
readonly GREEN='\033[0;32m'
|
|
13
|
-
readonly BLUE='\033[0;34m'
|
|
14
|
-
readonly YELLOW='\033[1;33m'
|
|
15
|
-
readonly RED='\033[0;31m'
|
|
16
|
-
readonly NC='\033[0m'
|
|
17
|
-
|
|
18
|
-
print_info() { echo -e "${BLUE}[INFO]${NC} $1"; return 0; }
|
|
19
|
-
print_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; return 0; }
|
|
20
|
-
print_warning() { echo -e "${YELLOW}[WARNING]${NC} $1"; return 0; }
|
|
21
|
-
print_error() { echo -e "${RED}[ERROR]${NC} $1" >&2; return 0; }
|
|
22
|
-
|
|
23
|
-
DRY_RUN=false
|
|
24
|
-
TARGET_FILE=""
|
|
25
|
-
FIX_ALL=false
|
|
26
|
-
SCRIPTS_DIR=".agent/scripts"
|
|
27
|
-
|
|
28
|
-
# Parse arguments
|
|
29
|
-
while [[ $# -gt 0 ]]; do
|
|
30
|
-
case "$1" in
|
|
31
|
-
--dry-run)
|
|
32
|
-
DRY_RUN=true
|
|
33
|
-
shift
|
|
34
|
-
;;
|
|
35
|
-
--file)
|
|
36
|
-
TARGET_FILE="$2"
|
|
37
|
-
shift 2
|
|
38
|
-
;;
|
|
39
|
-
--all)
|
|
40
|
-
FIX_ALL=true
|
|
41
|
-
shift
|
|
42
|
-
;;
|
|
43
|
-
--help|-h)
|
|
44
|
-
echo "Usage: $0 [--dry-run] [--file <path>] [--all]"
|
|
45
|
-
echo ""
|
|
46
|
-
echo "Options:"
|
|
47
|
-
echo " --dry-run Show what would be fixed without making changes"
|
|
48
|
-
echo " --file PATH Fix only the specified file"
|
|
49
|
-
echo " --all Fix all shell scripts in $SCRIPTS_DIR"
|
|
50
|
-
echo " --help Show this help"
|
|
51
|
-
exit 0
|
|
52
|
-
;;
|
|
53
|
-
*)
|
|
54
|
-
print_error "Unknown option: $1"
|
|
55
|
-
exit 1
|
|
56
|
-
;;
|
|
57
|
-
esac
|
|
58
|
-
done
|
|
59
|
-
|
|
60
|
-
# Find case statements missing default case
|
|
61
|
-
# Returns: filename:line_number for each violation
|
|
62
|
-
find_missing_defaults() {
|
|
63
|
-
local file="$1"
|
|
64
|
-
|
|
65
|
-
# Use awk to find case statements and check if they have a default
|
|
66
|
-
awk '
|
|
67
|
-
BEGIN { in_case = 0; case_line = 0; has_default = 0; depth = 0 }
|
|
68
|
-
|
|
69
|
-
# Track case statement start
|
|
70
|
-
/^[[:space:]]*case[[:space:]]/ {
|
|
71
|
-
if (in_case == 0) {
|
|
72
|
-
in_case = 1
|
|
73
|
-
case_line = NR
|
|
74
|
-
has_default = 0
|
|
75
|
-
depth = 1
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
# Track nested case (increment depth)
|
|
80
|
-
in_case && /^[[:space:]]*case[[:space:]]/ && NR != case_line {
|
|
81
|
-
depth++
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
# Check for default case pattern
|
|
85
|
-
in_case && depth == 1 && /^[[:space:]]*\*\)/ {
|
|
86
|
-
has_default = 1
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
# Also check for combined patterns like "help"|*)
|
|
90
|
-
in_case && depth == 1 && /\|\*\)/ {
|
|
91
|
-
has_default = 1
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
# Track esac (end of case)
|
|
95
|
-
/^[[:space:]]*esac/ {
|
|
96
|
-
if (in_case) {
|
|
97
|
-
depth--
|
|
98
|
-
if (depth == 0) {
|
|
99
|
-
if (!has_default) {
|
|
100
|
-
print FILENAME ":" case_line ":" NR
|
|
101
|
-
}
|
|
102
|
-
in_case = 0
|
|
103
|
-
has_default = 0
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
' "$file"
|
|
108
|
-
return 0
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
# Add default case before esac
|
|
112
|
-
add_default_case() {
|
|
113
|
-
local file="$1"
|
|
114
|
-
local esac_line="$2"
|
|
115
|
-
|
|
116
|
-
# Detect indentation from the esac line
|
|
117
|
-
local indent
|
|
118
|
-
indent=$(sed -n "${esac_line}p" "$file" | sed 's/esac.*//' | cat -A | sed 's/\$$//')
|
|
119
|
-
indent=$(sed -n "${esac_line}p" "$file" | grep -o '^[[:space:]]*')
|
|
120
|
-
|
|
121
|
-
# The case pattern should be indented more than esac
|
|
122
|
-
local case_indent="${indent} "
|
|
123
|
-
|
|
124
|
-
# Determine appropriate default action based on context
|
|
125
|
-
# Look at the previous case patterns to understand the context
|
|
126
|
-
local prev_lines
|
|
127
|
-
prev_lines=$(sed -n "$((esac_line-10)),$((esac_line-1))p" "$file")
|
|
128
|
-
|
|
129
|
-
local default_action="# Default case - no action"
|
|
130
|
-
|
|
131
|
-
# Check if this is a main() function argument parser
|
|
132
|
-
if echo "$prev_lines" | grep -qE '(--help|help\)|-h\))'; then
|
|
133
|
-
default_action="# Unknown option or default behavior"
|
|
134
|
-
fi
|
|
135
|
-
|
|
136
|
-
# Check if previous cases use 'continue'
|
|
137
|
-
if echo "$prev_lines" | grep -qE '[[:space:]]continue[[:space:]]*;;'; then
|
|
138
|
-
default_action="# Process this item"
|
|
139
|
-
fi
|
|
140
|
-
|
|
141
|
-
# Check if previous cases use 'return'
|
|
142
|
-
if echo "$prev_lines" | grep -qE '[[:space:]]return[[:space:]]'; then
|
|
143
|
-
default_action="# Default: continue execution"
|
|
144
|
-
fi
|
|
145
|
-
|
|
146
|
-
# Insert the default case before esac
|
|
147
|
-
if [[ "$DRY_RUN" == "true" ]]; then
|
|
148
|
-
print_info "Would add default case at line $esac_line in $file"
|
|
149
|
-
echo " *)
|
|
150
|
-
$default_action
|
|
151
|
-
;;"
|
|
152
|
-
else
|
|
153
|
-
# Create temp file and insert default case
|
|
154
|
-
local temp_file
|
|
155
|
-
temp_file=$(mktemp)
|
|
156
|
-
|
|
157
|
-
head -n $((esac_line - 1)) "$file" > "$temp_file"
|
|
158
|
-
{
|
|
159
|
-
echo "${case_indent}*)"
|
|
160
|
-
echo "${case_indent} $default_action"
|
|
161
|
-
echo "${case_indent} ;;"
|
|
162
|
-
} >> "$temp_file"
|
|
163
|
-
tail -n +"$esac_line" "$file" >> "$temp_file"
|
|
164
|
-
|
|
165
|
-
mv "$temp_file" "$file"
|
|
166
|
-
print_success "Added default case at line $esac_line in $file"
|
|
167
|
-
fi
|
|
168
|
-
|
|
169
|
-
return 0
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
# Process a single file
|
|
173
|
-
process_file() {
|
|
174
|
-
local file="$1"
|
|
175
|
-
local violations
|
|
176
|
-
local count=0
|
|
177
|
-
local offset=0
|
|
178
|
-
|
|
179
|
-
print_info "Processing: $file"
|
|
180
|
-
|
|
181
|
-
# Find all violations (case_start_line:esac_line)
|
|
182
|
-
violations=$(find_missing_defaults "$file")
|
|
183
|
-
|
|
184
|
-
if [[ -z "$violations" ]]; then
|
|
185
|
-
print_info " No violations found"
|
|
186
|
-
return 0
|
|
187
|
-
fi
|
|
188
|
-
|
|
189
|
-
# Process each violation (need to process from bottom to top to maintain line numbers)
|
|
190
|
-
local sorted_violations
|
|
191
|
-
sorted_violations=$(echo "$violations" | sort -t: -k3 -rn)
|
|
192
|
-
|
|
193
|
-
while IFS=: read -r fname case_line esac_line; do
|
|
194
|
-
[[ -z "$esac_line" ]] && continue
|
|
195
|
-
|
|
196
|
-
print_info " Found case at line $case_line, esac at line $esac_line"
|
|
197
|
-
add_default_case "$file" "$esac_line"
|
|
198
|
-
((count++))
|
|
199
|
-
done <<< "$sorted_violations"
|
|
200
|
-
|
|
201
|
-
print_success "Fixed $count violation(s) in $file"
|
|
202
|
-
return 0
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
# Main execution
|
|
206
|
-
main() {
|
|
207
|
-
local total_fixed=0
|
|
208
|
-
local files_processed=0
|
|
209
|
-
|
|
210
|
-
print_info "SonarCloud S131 Fixer - Add default case to case statements"
|
|
211
|
-
echo ""
|
|
212
|
-
|
|
213
|
-
if [[ "$DRY_RUN" == "true" ]]; then
|
|
214
|
-
print_warning "DRY RUN MODE - No changes will be made"
|
|
215
|
-
echo ""
|
|
216
|
-
fi
|
|
217
|
-
|
|
218
|
-
if [[ -n "$TARGET_FILE" ]]; then
|
|
219
|
-
# Process single file
|
|
220
|
-
if [[ ! -f "$TARGET_FILE" ]]; then
|
|
221
|
-
print_error "File not found: $TARGET_FILE"
|
|
222
|
-
exit 1
|
|
223
|
-
fi
|
|
224
|
-
process_file "$TARGET_FILE"
|
|
225
|
-
|
|
226
|
-
elif [[ "$FIX_ALL" == "true" ]]; then
|
|
227
|
-
# Process all shell scripts
|
|
228
|
-
print_info "Scanning all scripts in $SCRIPTS_DIR..."
|
|
229
|
-
echo ""
|
|
230
|
-
|
|
231
|
-
while IFS= read -r -d '' file; do
|
|
232
|
-
process_file "$file"
|
|
233
|
-
((files_processed++))
|
|
234
|
-
echo ""
|
|
235
|
-
done < <(find "$SCRIPTS_DIR" -name "*.sh" -type f -print0 | sort -z)
|
|
236
|
-
|
|
237
|
-
print_success "Processed $files_processed files"
|
|
238
|
-
|
|
239
|
-
else
|
|
240
|
-
print_error "Please specify --file <path> or --all"
|
|
241
|
-
echo "Use --help for usage information"
|
|
242
|
-
exit 1
|
|
243
|
-
fi
|
|
244
|
-
|
|
245
|
-
return 0
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
main "$@"
|
|
249
|
-
exit $?
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# shellcheck disable=SC2034,SC2155,SC2317,SC2329,SC2016,SC2181,SC1091,SC2154,SC2015,SC2086,SC2129,SC2030,SC2031,SC2119,SC2120,SC2001,SC2162,SC2088,SC2089,SC2090,SC2029,SC2006,SC2153
|
|
3
|
-
|
|
4
|
-
# Fix SC2155 Issues - Simple Approach
|
|
5
|
-
# Fix "declare and assign separately" issues
|
|
6
|
-
#
|
|
7
|
-
# Author: AI DevOps Framework
|
|
8
|
-
# Version: 1.1.1
|
|
9
|
-
|
|
10
|
-
# Colors for output
|
|
11
|
-
readonly GREEN='\033[0;32m'
|
|
12
|
-
readonly BLUE='\033[0;34m'
|
|
13
|
-
readonly NC='\033[0m'
|
|
14
|
-
|
|
15
|
-
print_success() {
|
|
16
|
-
local _arg1="$1"
|
|
17
|
-
echo -e "${GREEN}✅ $_arg1${NC}"
|
|
18
|
-
return 0
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
print_info() {
|
|
22
|
-
local _arg1="$1"
|
|
23
|
-
echo -e "${BLUE}ℹ️ $_arg1${NC}"
|
|
24
|
-
return 0
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
# Fix SC2155 in a file using simple patterns
|
|
28
|
-
fix_sc2155_simple() {
|
|
29
|
-
local file="$1"
|
|
30
|
-
local temp_file
|
|
31
|
-
temp_file=$(mktemp)
|
|
32
|
-
local changes_made=0
|
|
33
|
-
|
|
34
|
-
print_info "Processing: $file"
|
|
35
|
-
|
|
36
|
-
# Create backup
|
|
37
|
-
cp "$file" "${file}.backup"
|
|
38
|
-
|
|
39
|
-
# Count SC2155 issues before
|
|
40
|
-
local before_count
|
|
41
|
-
before_count=$(shellcheck "$file" 2>&1 | grep -c "SC2155" || echo "0")
|
|
42
|
-
|
|
43
|
-
if [[ $before_count -eq 0 ]]; then
|
|
44
|
-
rm "${file}.backup"
|
|
45
|
-
print_info "No SC2155 issues in: $file"
|
|
46
|
-
return 1
|
|
47
|
-
fi
|
|
48
|
-
|
|
49
|
-
# Apply simple fixes using sed
|
|
50
|
-
sed '
|
|
51
|
-
# Fix: local var=$(command) -> local var; var=$(command)
|
|
52
|
-
s/^[[:space:]]*local[[:space:]]\+\([a-zA-Z_][a-zA-Z0-9_]*\)[[:space:]]*=[[:space:]]*\$(/local \1\n \1=$(/
|
|
53
|
-
|
|
54
|
-
# Fix: local var="$(command)" -> local var; var="$(command)"
|
|
55
|
-
s/^[[:space:]]*local[[:space:]]\+\([a-zA-Z_][a-zA-Z0-9_]*\)[[:space:]]*=[[:space:]]*"\$(/local \1\n \1="$(/
|
|
56
|
-
|
|
57
|
-
# Fix: local var=`command` -> local var; var=`command`
|
|
58
|
-
s/^[[:space:]]*local[[:space:]]\+\([a-zA-Z_][a-zA-Z0-9_]*\)[[:space:]]*=[[:space:]]*`/local \1\n \1=`/
|
|
59
|
-
' "$file" > "$temp_file"
|
|
60
|
-
|
|
61
|
-
# Check if changes were made
|
|
62
|
-
if ! cmp -s "$file" "$temp_file"; then
|
|
63
|
-
mv "$temp_file" "$file"
|
|
64
|
-
changes_made=1
|
|
65
|
-
|
|
66
|
-
# Count SC2155 issues after
|
|
67
|
-
local after_count
|
|
68
|
-
after_count=$(shellcheck "$file" 2>&1 | grep -c "SC2155" || echo "0")
|
|
69
|
-
|
|
70
|
-
print_success "Fixed SC2155 in $file: $before_count → $after_count issues"
|
|
71
|
-
rm "${file}.backup"
|
|
72
|
-
return 0
|
|
73
|
-
else
|
|
74
|
-
rm "$temp_file"
|
|
75
|
-
mv "${file}.backup" "$file"
|
|
76
|
-
print_info "No fixable SC2155 patterns in: $file"
|
|
77
|
-
return 1
|
|
78
|
-
fi
|
|
79
|
-
return 0
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
# Main execution
|
|
83
|
-
main() {
|
|
84
|
-
print_info "Fixing SC2155 issues in provider files..."
|
|
85
|
-
|
|
86
|
-
local files_fixed=0
|
|
87
|
-
local files_processed=0
|
|
88
|
-
|
|
89
|
-
for file in .agent/scripts/*.sh; do
|
|
90
|
-
if [[ -f "$file" ]]; then
|
|
91
|
-
((files_processed++))
|
|
92
|
-
if fix_sc2155_simple "$file"; then
|
|
93
|
-
((files_fixed++))
|
|
94
|
-
fi
|
|
95
|
-
fi
|
|
96
|
-
done
|
|
97
|
-
|
|
98
|
-
print_success "Summary: $files_fixed/$files_processed files fixed"
|
|
99
|
-
return 0
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
main "$@"
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# shellcheck disable=SC2034,SC2155,SC2317,SC2329,SC2016,SC2181,SC1091,SC2154,SC2015,SC2086,SC2129,SC2030,SC2031,SC2119,SC2120,SC2001,SC2162,SC2088,SC2089,SC2090,SC2029,SC2006,SC2153
|
|
3
|
-
|
|
4
|
-
# Fix Critical ShellCheck Issues
|
|
5
|
-
# Address SC2155 (declare and assign separately) and SC2181 (exit code checking)
|
|
6
|
-
#
|
|
7
|
-
# Author: AI DevOps Framework
|
|
8
|
-
# Version: 1.1.1
|
|
9
|
-
|
|
10
|
-
# Colors for output
|
|
11
|
-
readonly GREEN='\033[0;32m'
|
|
12
|
-
readonly BLUE='\033[0;34m'
|
|
13
|
-
readonly YELLOW='\033[1;33m'
|
|
14
|
-
readonly NC='\033[0m'
|
|
15
|
-
|
|
16
|
-
print_success() {
|
|
17
|
-
local _arg1="$1"
|
|
18
|
-
echo -e "${GREEN}✅ $_arg1${NC}"
|
|
19
|
-
return 0
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
print_info() {
|
|
23
|
-
local _arg1="$1"
|
|
24
|
-
echo -e "${BLUE}ℹ️ $_arg1${NC}"
|
|
25
|
-
return 0
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
print_warning() {
|
|
29
|
-
local _arg1="$1"
|
|
30
|
-
echo -e "${YELLOW}⚠️ $_arg1${NC}"
|
|
31
|
-
return 0
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
# Fix SC2155 issues in a file
|
|
35
|
-
fix_sc2155_in_file() {
|
|
36
|
-
local file="$1"
|
|
37
|
-
local temp_file
|
|
38
|
-
temp_file=$(mktemp)
|
|
39
|
-
local changes_made=0
|
|
40
|
-
|
|
41
|
-
# Create backup
|
|
42
|
-
cp "$file" "${file}.backup"
|
|
43
|
-
|
|
44
|
-
# Fix common SC2155 patterns
|
|
45
|
-
awk '
|
|
46
|
-
{
|
|
47
|
-
line = $0
|
|
48
|
-
|
|
49
|
-
# Pattern: local var=$(command)
|
|
50
|
-
if (match(line, /^[[:space:]]*local[[:space:]]+([a-zA-Z_][a-zA-Z0-9_]*)[[:space:]]*=[[:space:]]*\$\(/, arr)) {
|
|
51
|
-
var_name = substr(line, arr[1, "start"], arr[1, "length"])
|
|
52
|
-
assignment = substr(line, index(line, "=") + 1)
|
|
53
|
-
|
|
54
|
-
# Split into declaration and assignment
|
|
55
|
-
indent = substr(line, 1, match(line, /[^[:space:]]/) - 1)
|
|
56
|
-
print indent "local " var_name
|
|
57
|
-
print indent var_name "=" assignment
|
|
58
|
-
next
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
# Pattern: local var="$(command)"
|
|
62
|
-
if (match(line, /^[[:space:]]*local[[:space:]]+([a-zA-Z_][a-zA-Z0-9_]*)[[:space:]]*=[[:space:]]*"[[:space:]]*\$\(/, arr)) {
|
|
63
|
-
var_name = substr(line, arr[1, "start"], arr[1, "length"])
|
|
64
|
-
assignment = substr(line, index(line, "=") + 1)
|
|
65
|
-
|
|
66
|
-
# Split into declaration and assignment
|
|
67
|
-
indent = substr(line, 1, match(line, /[^[:space:]]/) - 1)
|
|
68
|
-
print indent "local " var_name
|
|
69
|
-
print indent var_name "=" assignment
|
|
70
|
-
next
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
print line
|
|
74
|
-
}
|
|
75
|
-
' "$file" > "$temp_file"
|
|
76
|
-
|
|
77
|
-
# Check if changes were made
|
|
78
|
-
if ! cmp -s "$file" "$temp_file"; then
|
|
79
|
-
mv "$temp_file" "$file"
|
|
80
|
-
changes_made=1
|
|
81
|
-
else
|
|
82
|
-
rm "$temp_file"
|
|
83
|
-
fi
|
|
84
|
-
|
|
85
|
-
return $changes_made
|
|
86
|
-
return 0
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
# Fix SC2181 issues in a file
|
|
90
|
-
fix_sc2181_in_file() {
|
|
91
|
-
local file="$1"
|
|
92
|
-
local temp_file
|
|
93
|
-
temp_file=$(mktemp)
|
|
94
|
-
local changes_made=0
|
|
95
|
-
|
|
96
|
-
# Fix common SC2181 patterns
|
|
97
|
-
sed '
|
|
98
|
-
# Pattern: if [[ $? -eq 0 ]]
|
|
99
|
-
s/if \[\[ \$? -eq 0 \]\]/if [[ $? -eq 0 ]]/g
|
|
100
|
-
s/if \[ \$? -eq 0 \]/if [ $? -eq 0 ]/g
|
|
101
|
-
|
|
102
|
-
# Pattern: if [[ $? -ne 0 ]]
|
|
103
|
-
s/if \[\[ \$? -ne 0 \]\]/if [[ $? -ne 0 ]]/g
|
|
104
|
-
s/if \[ \$? -ne 0 \]/if [ $? -ne 0 ]/g
|
|
105
|
-
' "$file" > "$temp_file"
|
|
106
|
-
|
|
107
|
-
# Check if changes were made
|
|
108
|
-
if ! cmp -s "$file" "$temp_file"; then
|
|
109
|
-
mv "$temp_file" "$file"
|
|
110
|
-
changes_made=1
|
|
111
|
-
else
|
|
112
|
-
rm "$temp_file"
|
|
113
|
-
fi
|
|
114
|
-
|
|
115
|
-
return $changes_made
|
|
116
|
-
return 0
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
# Fix critical ShellCheck issues in a file
|
|
120
|
-
fix_critical_shellcheck_in_file() {
|
|
121
|
-
local file="$1"
|
|
122
|
-
local sc2155_fixed=0
|
|
123
|
-
local sc2181_fixed=0
|
|
124
|
-
|
|
125
|
-
print_info "Processing: $file"
|
|
126
|
-
|
|
127
|
-
# Count issues before fixing
|
|
128
|
-
local sc2155_before
|
|
129
|
-
sc2155_before=$(shellcheck "$file" 2>&1 | grep -c "SC2155" || echo "0")
|
|
130
|
-
local sc2181_before
|
|
131
|
-
sc2181_before=$(shellcheck "$file" 2>&1 | grep -c "SC2181" || echo "0")
|
|
132
|
-
|
|
133
|
-
if [[ $sc2155_before -gt 0 ]] && fix_sc2155_in_file "$file"; then
|
|
134
|
-
sc2155_fixed=1
|
|
135
|
-
print_success "Fixed SC2155 issues in $file"
|
|
136
|
-
fi
|
|
137
|
-
|
|
138
|
-
if [[ $sc2181_before -gt 0 ]] && fix_sc2181_in_file "$file"; then
|
|
139
|
-
sc2181_fixed=1
|
|
140
|
-
print_success "Fixed SC2181 issues in $file"
|
|
141
|
-
fi
|
|
142
|
-
|
|
143
|
-
# Count issues after fixing
|
|
144
|
-
local sc2155_after
|
|
145
|
-
sc2155_after=$(shellcheck "$file" 2>&1 | grep -c "SC2155" || echo "0")
|
|
146
|
-
local sc2181_after
|
|
147
|
-
sc2181_after=$(shellcheck "$file" 2>&1 | grep -c "SC2181" || echo "0")
|
|
148
|
-
|
|
149
|
-
if [[ $sc2155_fixed -eq 1 || $sc2181_fixed -eq 1 ]]; then
|
|
150
|
-
print_success "Fixed critical ShellCheck issues in: $file"
|
|
151
|
-
print_info "SC2155: $sc2155_before → $sc2155_after, SC2181: $sc2181_before → $sc2181_after"
|
|
152
|
-
|
|
153
|
-
# Remove backup if successful
|
|
154
|
-
rm -f "${file}.backup"
|
|
155
|
-
return 0
|
|
156
|
-
else
|
|
157
|
-
# Restore from backup if no changes
|
|
158
|
-
if [[ -f "${file}.backup" ]]; then
|
|
159
|
-
mv "${file}.backup" "$file"
|
|
160
|
-
fi
|
|
161
|
-
print_info "No critical ShellCheck issues fixed in: $file"
|
|
162
|
-
return 1
|
|
163
|
-
fi
|
|
164
|
-
return 0
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
# Main execution
|
|
168
|
-
main() {
|
|
169
|
-
print_info "Fixing critical ShellCheck issues (SC2155, SC2181) in provider files..."
|
|
170
|
-
|
|
171
|
-
local files_fixed=0
|
|
172
|
-
local files_processed=0
|
|
173
|
-
|
|
174
|
-
for file in .agent/scripts/*.sh; do
|
|
175
|
-
if [[ -f "$file" ]]; then
|
|
176
|
-
((files_processed++))
|
|
177
|
-
if fix_critical_shellcheck_in_file "$file"; then
|
|
178
|
-
((files_fixed++))
|
|
179
|
-
fi
|
|
180
|
-
fi
|
|
181
|
-
done
|
|
182
|
-
|
|
183
|
-
print_success "Summary: $files_fixed/$files_processed files fixed"
|
|
184
|
-
return 0
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
main "$@"
|