first commit
This commit is contained in:
76
tools/remove_multidb.sh
Executable file
76
tools/remove_multidb.sh
Executable file
@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
MODULE_IMPORT="quantex.com.ar/multidb"
|
||||
MODULE_NAME="multidb"
|
||||
DB_VAR_NAME="database"
|
||||
|
||||
echo "Removing all references to '$MODULE_NAME' and replacing with 'database/sql' where needed..."
|
||||
|
||||
FILES=$(find ./src -type f -name "*.go")
|
||||
|
||||
for file in $FILES; do
|
||||
echo "Processing $file"
|
||||
|
||||
# 1. Remove explicit import by module path
|
||||
perl -pi -e "s|.*$MODULE_IMPORT.*\n||g" "$file"
|
||||
|
||||
# 2. Remove any import line containing 'multidb'
|
||||
perl -pi -e 's|.*"[^"]*multidb[^"]*".*\n||g' "$file"
|
||||
|
||||
# 3. Replace multidb.New(...) with sql.Open(...)
|
||||
perl -pi -e "s|$MODULE_NAME\.New\s*\(\s*serviceName:\s*\"[^\"]*\",\s*(.*?)\)|sql.Open(\"postgres\", \1)|g" "$file"
|
||||
|
||||
# 4. Comment out database.Start()
|
||||
perl -pi -e "s|$DB_VAR_NAME\.Start\(\)|// $DB_VAR_NAME.Start() removed, not needed in database/sql|g" "$file"
|
||||
|
||||
# 5. Remove any line containing .PeriodicDBPing
|
||||
perl -pi -e "s|.*\.PeriodicDBPing.*\n||g" "$file"
|
||||
|
||||
# 6. Remove any reference to *multidb.Type
|
||||
perl -pi -e "s|\*?$MODULE_NAME\.[A-Za-z0-9_]+||g" "$file"
|
||||
|
||||
# 7. Remove the field 'MultiDB multidb.Config' from structs
|
||||
perl -pi -e "s|MultiDB\s+$MODULE_NAME\.Config\s*||g" "$file"
|
||||
|
||||
# 8. Remove orphan field 'MultiDB' with no type
|
||||
perl -pi -e 's/^\s*MultiDB\s*\n//g' "$file"
|
||||
|
||||
# 9. Remove field 'db' with no type (after type removal)
|
||||
perl -pi -e "s|^\s*db\s*\n||g" "$file"
|
||||
|
||||
# 10. Replace store.Config{MultiDB: ...} with store.Config{}
|
||||
perl -pi -e 's|store\.Config\s*{\s*MultiDB:\s*[^}]+}|store.Config{}|g' "$file"
|
||||
|
||||
# 11. Remove p.db.Close() line
|
||||
perl -pi -e 's|^[ \t]*p\.db\.Close\(\)[ \t]*;?[ \t]*\n||g' "$file"
|
||||
|
||||
# 12. Remove block from database initialization to return s, nil
|
||||
perl -0777 -pi -e 's|database\s*,\s*err\s*:=.*?\n.*?return s,\s*nil\n||gs' "$file"
|
||||
|
||||
# 13. If function New(...) is now empty, insert 'return nil, nil'
|
||||
perl -0777 -pi -e 's|func\s+New\([^\)]*\)\s*\(\*Store,\s*error\)\s*{\s*}|func New(config Config) (*Store, error) {\n return nil, nil\n}|g' "$file"
|
||||
|
||||
# 14. Clean Store struct, leave it empty if db field was removed
|
||||
perl -0777 -pi -e 's|type Store struct\s*{\s*db\s*:.*?\n\s*}|type Store struct {}|g' "$file"
|
||||
done
|
||||
|
||||
# 15. Remove import "database/sql" if not used anymore
|
||||
for file in $FILES; do
|
||||
if ! grep -q "sql." "$file" && grep -q '"database/sql"' "$file"; then
|
||||
echo "Removing unused import 'database/sql' in $file"
|
||||
perl -pi -e 's|.*"database/sql".*\n||g' "$file"
|
||||
fi
|
||||
done
|
||||
|
||||
# 16. Remove the module requirement from go.mod and clean go.sum
|
||||
echo "Cleaning go.mod and go.sum..."
|
||||
go mod edit -droprequire=$MODULE_IMPORT || true
|
||||
go mod tidy
|
||||
go mod vendor || true
|
||||
|
||||
# 17. Remove vendored copy if exists
|
||||
rm -rf ./vendor/quantex.com.ar/multidb || true
|
||||
|
||||
echo "multidb module fully removed."
|
||||
Reference in New Issue
Block a user