Add golangci-lint for linting and refactor the code based on the
feedback from running it.
Changes:
- Add configuration for golangci-lint.
- Break the large function in create.go into smaller ones.
- Rename internal/templateFuncs to internal/templatefuncs to remove
upper case letters in the package name.
- Add a mage target for lint tests.
Use the default FlagSet to parse all the arguments and to set the
default help message for spruce. Arguments set after the subcommand are
still parsed by the subcommand's FlagSet.
The summaries for all subcommand are defined in one place in the main
function for consistency.
The internal/cmd.SpruceUsage function is replaced with the
spruceUsageFunc function in the main package which returns the usage
function which is set as the default usage function.
The format of the help message for spruce and the subcommands have been
updated with the inspiration of the help message from gopass.
Create separate types for education and employment to fix the issue
where unnecessary fields are created under both education and employment
when a new CV is created.
- Use go generate and a third party tool called jsonschemagen to
auto-generate the CV data type from the JSON schema.
- Update the schema by changing number to integer to ensure that the
integers are set to the correct type.
- Refactor some code.
- feat: add a field for the type of work location (e.g. hybrid)
- refactor: move the Tex and PDF generating code to a new internal
package which also moves the templates there as well.
- fix: add a default value for the --output field for the generate
command.
- fix: add an error for when the user does not specify an input file
when generating the PDF.
- fix: the package name for each of the files in the templateFuncs
package.
Add functionality to display the default help message when running
spruce without any arguments or when the help flag is used.
Customise the help message for the subcommands.
Additional changes:
- Refactor: move the Runner interface to the internal cmd package
- Fix: Add a summary for each of the subcommands.
- Refactor: Use string builder to replace string literals.
- Perf: Use a switch statement to only create the subcommand that the
user calls.