diff --git a/.vscode/settings.json b/.vscode/settings.json index 90b4a2e..3e0a7c1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -37,6 +37,7 @@ "cSpell.words": [ "djmil", "gitea", + "golangci", "testutil" ] } diff --git a/rename.sh b/rename.sh index 7ee1ba6..c5089f0 100755 --- a/rename.sh +++ b/rename.sh @@ -126,11 +126,24 @@ sedi() { fi } +# ── Helper: rename module path in a file, preserving pkg/result imports ─────── +# pkg/result is a standalone publishable package; its import path must not +# change when the consuming project is renamed. +RESULT_PKG="${OLD_MODULE}/pkg/result" +PLACEHOLDER="__RESULT_PKG_PLACEHOLDER__" + +rename_module_in() { + local file="$1" + sedi "s|${RESULT_PKG}|${PLACEHOLDER}|g" "$file" + sedi "s|${OLD_MODULE}|${NEW_MODULE}|g" "$file" + sedi "s|${PLACEHOLDER}|${RESULT_PKG}|g" "$file" +} + # ── Apply substitutions ─────────────────────────────────────────────────────── heading "Applying changes" # 1. go.mod — module declaration -sedi "s|${OLD_MODULE}|${NEW_MODULE}|g" go.mod +rename_module_in go.mod info "go.mod" # 2. All Go source files — import paths @@ -143,7 +156,7 @@ GO_FILES=$(find . \ CHANGED_GO=0 for f in $GO_FILES; do if grep -q "$OLD_MODULE" "$f" 2>/dev/null; then - sedi "s|${OLD_MODULE}|${NEW_MODULE}|g" "$f" + rename_module_in "$f" CHANGED_GO=$((CHANGED_GO + 1)) fi done @@ -159,19 +172,19 @@ fi # 4. README.md — heading + all module path occurrences if [[ -f README.md ]]; then sedi "s|^# ${OLD_PROJECT}$|# ${NEW_PROJECT}|g" README.md - sedi "s|${OLD_MODULE}|${NEW_MODULE}|g" README.md + rename_module_in README.md info "README.md" fi # 5. CLAUDE.md — Module line if [[ -f CLAUDE.md ]]; then - sedi "s|${OLD_MODULE}|${NEW_MODULE}|g" CLAUDE.md + rename_module_in CLAUDE.md info "CLAUDE.md" fi # 6. .golangci.yml — goimports local-prefixes if [[ -f .golangci.yml ]]; then - sedi "s|${OLD_MODULE}|${NEW_MODULE}|g" .golangci.yml + rename_module_in .golangci.yml info ".golangci.yml" fi