aidevops 2.52.1 → 2.53.1
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,273 +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
|
-
# String Literals Fix Script
|
|
5
|
-
# Identify and fix repeated string literals for SonarCloud S1192 compliance
|
|
6
|
-
#
|
|
7
|
-
# Usage: ./fix-string-literals.sh [file|directory]
|
|
8
|
-
#
|
|
9
|
-
# Author: AI DevOps Framework
|
|
10
|
-
# Version: 1.1.1
|
|
11
|
-
# License: MIT
|
|
12
|
-
|
|
13
|
-
# Colors for output
|
|
14
|
-
readonly GREEN='\033[0;32m'
|
|
15
|
-
readonly BLUE='\033[0;34m'
|
|
16
|
-
readonly YELLOW='\033[1;33m'
|
|
17
|
-
readonly RED='\033[0;31m'
|
|
18
|
-
readonly PURPLE='\033[0;35m'
|
|
19
|
-
readonly NC='\033[0m' # No Color
|
|
20
|
-
|
|
21
|
-
# Print functions
|
|
22
|
-
print_success() {
|
|
23
|
-
local message="$1"
|
|
24
|
-
echo -e "${GREEN}✅ $message${NC}"
|
|
25
|
-
return 0
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
print_info() {
|
|
29
|
-
local message="$1"
|
|
30
|
-
echo -e "${BLUE}ℹ️ $message${NC}"
|
|
31
|
-
return 0
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
print_warning() {
|
|
35
|
-
local message="$1"
|
|
36
|
-
echo -e "${YELLOW}⚠️ $message${NC}"
|
|
37
|
-
return 0
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
print_error() {
|
|
41
|
-
local message="$1"
|
|
42
|
-
echo -e "${RED}❌ $message${NC}" >&2
|
|
43
|
-
return 0
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
print_header() {
|
|
47
|
-
local message="$1"
|
|
48
|
-
echo -e "${PURPLE}🔧 $message${NC}"
|
|
49
|
-
return 0
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
# Find repeated string literals in a file
|
|
53
|
-
find_repeated_strings() {
|
|
54
|
-
local file="$1"
|
|
55
|
-
local min_length="${2:-10}"
|
|
56
|
-
local min_occurrences="${3:-3}"
|
|
57
|
-
|
|
58
|
-
print_info "Analyzing string literals in: $file"
|
|
59
|
-
|
|
60
|
-
# Extract string literals and count occurrences
|
|
61
|
-
grep -o '"[^"]\{'"$min_length"',\}"' "$file" | \
|
|
62
|
-
sort | uniq -c | \
|
|
63
|
-
awk -v min="$min_occurrences" '$1 >= min {print $1, $0}' | \
|
|
64
|
-
sort -nr
|
|
65
|
-
return 0
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
# Find repeated strings across all shell files
|
|
69
|
-
analyze_repeated_strings() {
|
|
70
|
-
local target_dir="${1:-.}"
|
|
71
|
-
|
|
72
|
-
print_header "Analyzing Repeated String Literals"
|
|
73
|
-
|
|
74
|
-
local temp_file
|
|
75
|
-
temp_file=$(mktemp)
|
|
76
|
-
|
|
77
|
-
# Find all shell files and extract string literals
|
|
78
|
-
find "$target_dir" -name "*.sh" -type f | while read -r file; do
|
|
79
|
-
grep -o '"[^"]\{10,\}"' "$file" 2>/dev/null | sed "s|^|$file: |"
|
|
80
|
-
done > "$temp_file"
|
|
81
|
-
|
|
82
|
-
# Count occurrences of each string
|
|
83
|
-
print_info "Most repeated string literals (10+ chars, 3+ occurrences):"
|
|
84
|
-
echo ""
|
|
85
|
-
|
|
86
|
-
cut -d':' -f2- "$temp_file" | \
|
|
87
|
-
sort | uniq -c | \
|
|
88
|
-
awk '$_arg1 >= 3 {print $_arg1, $0}' | \
|
|
89
|
-
sort -nr | head -20
|
|
90
|
-
|
|
91
|
-
rm "$temp_file"
|
|
92
|
-
return 0
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
# Create constants for repeated strings in a file
|
|
96
|
-
create_string_constants() {
|
|
97
|
-
local file="$1"
|
|
98
|
-
local backup_file="${file}.string-backup"
|
|
99
|
-
|
|
100
|
-
print_info "Creating string constants for: $file"
|
|
101
|
-
|
|
102
|
-
# Create backup
|
|
103
|
-
cp "$file" "$backup_file"
|
|
104
|
-
|
|
105
|
-
# Common repeated strings that should be constants
|
|
106
|
-
local -A string_constants=(
|
|
107
|
-
['"AI DevOps Framework"']='readonly FRAMEWORK_NAME="AI DevOps Framework"'
|
|
108
|
-
['"https://github.com/marcusquinn/aidevops"']='readonly FRAMEWORK_REPO="https://github.com/marcusquinn/aidevops"'
|
|
109
|
-
['"Configuration file not found"']='readonly ERROR_CONFIG_NOT_FOUND="Configuration file not found"'
|
|
110
|
-
['"Command not found"']='readonly ERROR_COMMAND_NOT_FOUND="Command not found"'
|
|
111
|
-
['"Invalid option"']='readonly ERROR_INVALID_OPTION="Invalid option"'
|
|
112
|
-
['"Operation completed successfully"']='readonly SUCCESS_OPERATION_COMPLETE="Operation completed successfully"'
|
|
113
|
-
['"Please install"']='readonly ERROR_PLEASE_INSTALL="Please install"'
|
|
114
|
-
['"Not found"']='readonly ERROR_NOT_FOUND="Not found"'
|
|
115
|
-
['"Failed to"']='readonly ERROR_FAILED_TO="Failed to"'
|
|
116
|
-
['"Unable to"']='readonly ERROR_UNABLE_TO="Unable to"'
|
|
117
|
-
)
|
|
118
|
-
|
|
119
|
-
local temp_file
|
|
120
|
-
temp_file=$(mktemp)
|
|
121
|
-
local constants_added=0
|
|
122
|
-
local replacements_made=0
|
|
123
|
-
|
|
124
|
-
# Check if file already has constants section
|
|
125
|
-
if ! grep -q "# String constants" "$file"; then
|
|
126
|
-
# Add constants section after the header
|
|
127
|
-
awk '
|
|
128
|
-
/^# Colors for output/ || /^readonly.*=/ {
|
|
129
|
-
if (!constants_added) {
|
|
130
|
-
print ""
|
|
131
|
-
print "# String constants"
|
|
132
|
-
constants_added = 1
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
{ print }
|
|
136
|
-
' "$file" > "$temp_file"
|
|
137
|
-
mv "$temp_file" "$file"
|
|
138
|
-
fi
|
|
139
|
-
|
|
140
|
-
# Add constants and replace strings
|
|
141
|
-
for string_literal in "${!string_constants[@]}"; do
|
|
142
|
-
local constant_def="${string_constants[$string_literal]}"
|
|
143
|
-
local constant_name
|
|
144
|
-
constant_name=$(echo "$constant_def" | sed 's/.*readonly \([^=]*\)=.*/\1/')
|
|
145
|
-
|
|
146
|
-
# Check if string appears multiple times
|
|
147
|
-
local count
|
|
148
|
-
count=$(grep -c "$string_literal" "$file" 2>/dev/null || echo "0")
|
|
149
|
-
|
|
150
|
-
if [[ $count -ge 3 ]]; then
|
|
151
|
-
# Add constant definition if not already present
|
|
152
|
-
if ! grep -q "$constant_name" "$file"; then
|
|
153
|
-
sed -i "/# String constants/a\\$constant_def" "$file"
|
|
154
|
-
((constants_added++))
|
|
155
|
-
fi
|
|
156
|
-
|
|
157
|
-
# Replace string literals with constant reference
|
|
158
|
-
sed -i "s|$string_literal|\$$constant_name|g" "$file"
|
|
159
|
-
((replacements_made += count))
|
|
160
|
-
print_success "Replaced $count occurrences of $string_literal with \$$constant_name"
|
|
161
|
-
fi
|
|
162
|
-
done
|
|
163
|
-
|
|
164
|
-
if [[ $constants_added -gt 0 || $replacements_made -gt 0 ]]; then
|
|
165
|
-
print_success "Added $constants_added constants, made $replacements_made replacements in $file"
|
|
166
|
-
return 0
|
|
167
|
-
else
|
|
168
|
-
# Remove backup if no changes
|
|
169
|
-
rm "$backup_file"
|
|
170
|
-
print_info "No repeated strings found requiring constants in $file"
|
|
171
|
-
return 1
|
|
172
|
-
fi
|
|
173
|
-
return 0
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
# Process directory for string literal fixes
|
|
177
|
-
process_directory_strings() {
|
|
178
|
-
local target_dir="${1:-.}"
|
|
179
|
-
|
|
180
|
-
print_header "Processing String Literals in Directory: $target_dir"
|
|
181
|
-
|
|
182
|
-
local files_processed=0
|
|
183
|
-
local files_modified=0
|
|
184
|
-
|
|
185
|
-
find "$target_dir" -name "*.sh" -type f | while read -r file; do
|
|
186
|
-
((files_processed++))
|
|
187
|
-
if create_string_constants "$file"; then
|
|
188
|
-
((files_modified++))
|
|
189
|
-
fi
|
|
190
|
-
done
|
|
191
|
-
|
|
192
|
-
print_info "Summary: $files_modified/$files_processed files modified"
|
|
193
|
-
return 0
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
# Show help message
|
|
197
|
-
show_help() {
|
|
198
|
-
print_header "String Literals Fix Help"
|
|
199
|
-
echo ""
|
|
200
|
-
echo "Usage: $0 [command] [target]"
|
|
201
|
-
echo ""
|
|
202
|
-
echo "Commands:"
|
|
203
|
-
echo " analyze [dir] - Analyze repeated string literals (default)"
|
|
204
|
-
echo " fix [file|dir] - Fix repeated strings with constants"
|
|
205
|
-
echo " help - Show this help message"
|
|
206
|
-
echo ""
|
|
207
|
-
echo "Examples:"
|
|
208
|
-
echo " $0 analyze ."
|
|
209
|
-
echo " $0 fix .agent/scripts/"
|
|
210
|
-
echo " $0 fix setup.sh"
|
|
211
|
-
echo ""
|
|
212
|
-
echo "This script addresses SonarCloud S1192 violations by:"
|
|
213
|
-
echo " • Identifying repeated string literals (10+ chars, 3+ occurrences)"
|
|
214
|
-
echo " • Creating readonly constants for common strings"
|
|
215
|
-
echo " • Replacing string literals with constant references"
|
|
216
|
-
echo " • Reducing code duplication and improving maintainability"
|
|
217
|
-
echo ""
|
|
218
|
-
echo "Common patterns addressed:"
|
|
219
|
-
echo " • Error messages"
|
|
220
|
-
echo " • Success messages"
|
|
221
|
-
echo " • Framework names and URLs"
|
|
222
|
-
echo " • Configuration messages"
|
|
223
|
-
echo ""
|
|
224
|
-
echo "Backup files (.string-backup) are created for all modified files."
|
|
225
|
-
return 0
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
# Main function
|
|
229
|
-
main() {
|
|
230
|
-
local command="${1:-analyze}"
|
|
231
|
-
local target="${2:-.}"
|
|
232
|
-
|
|
233
|
-
# Handle case where first argument is a file/directory
|
|
234
|
-
if [[ -f "$_arg1" || -d "$_arg1" ]]; then
|
|
235
|
-
command="analyze"
|
|
236
|
-
target="$_arg1"
|
|
237
|
-
fi
|
|
238
|
-
|
|
239
|
-
case "$command" in
|
|
240
|
-
"analyze")
|
|
241
|
-
if [[ -d "$target" ]]; then
|
|
242
|
-
analyze_repeated_strings "$target"
|
|
243
|
-
elif [[ -f "$target" ]]; then
|
|
244
|
-
find_repeated_strings "$target"
|
|
245
|
-
else
|
|
246
|
-
print_error "Target not found: $target"
|
|
247
|
-
return 1
|
|
248
|
-
fi
|
|
249
|
-
;;
|
|
250
|
-
"fix")
|
|
251
|
-
if [[ -f "$target" && "$target" == *.sh ]]; then
|
|
252
|
-
create_string_constants "$target"
|
|
253
|
-
elif [[ -d "$target" ]]; then
|
|
254
|
-
process_directory_strings "$target"
|
|
255
|
-
else
|
|
256
|
-
print_error "Invalid target for fixes: $target"
|
|
257
|
-
return 1
|
|
258
|
-
fi
|
|
259
|
-
;;
|
|
260
|
-
"help"|"--help"|"-h")
|
|
261
|
-
show_help
|
|
262
|
-
;;
|
|
263
|
-
*)
|
|
264
|
-
print_error "Unknown command: $command"
|
|
265
|
-
show_help
|
|
266
|
-
return 1
|
|
267
|
-
;;
|
|
268
|
-
esac
|
|
269
|
-
return 0
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
# Execute main function with all arguments
|
|
273
|
-
main "$@"
|