Create Go script that can replace preceding tabs with spaces in SQL string literals
Related to #67, this issue is a follow-up to the PR resolving #67 which will add a Go based script that can be run as needed to correct the whitespace for the string literals.
The desired feature set should include:
- Re-writes the acceptance tests to have tab-less multi-line strings
- Preferably has a--fix option, such that there is basically a validation/dry-run mode and a write mode
- Is called from the makefile lint and lint_fix targets (like go_lint, sql_lint, etc)
@bplunkett-stripe Feel free to update the issue as needed.
Looks right to me!
Don't worry about making the "dry-run" mode too complicated, i.e., printing out line numbers. Just printing out the file name is fine.
You still planning on picking this up @ammiranda? Checking because I might take at a pass at it soon.
@bplunkett-stripe I was planning on it, but I think I need a bit more direction on how to implement it. Like how to make it invocable from the command line via the Makefile and how to read the --fix flag for it. I'm guessing the flag could be read using the flags package but I'm unsure.
Yes, you can use the same cobra/flags pkg, similar to the pg-schema-diff command. I would define the script under a file like scripts/acceptance_test_sql_linter/main.go. You could then use go run to call it from the makefile, passing the appropriate parameters.