A general purpose project template for golang CLI applications
This template serves as a starting point for golang commandline applications it is based on golang projects that I consider high quality and various other useful blog posts that helped me understanding golang better.
Features
Project Layout
- assets/ => docs, images, etc
- cmd/ => commandline configurartions (flags, subcommands)
- pkg/ => packages that are okay to import for other projects
- internal/ => packages that are only for project internal purposes
How to use this template
bash <(curl -s https://raw.githubusercontent.com/jatalocks/gitform/main/install.sh)
Demo Application
$> gitform
golang-cli project template demo application
Usage:
gitform [flags]
gitform [command]
Available Commands:
example example subcommand which adds or multiplies two given integers
help Help about any command
version Displays d4sva binary version
Flags:
-h, --help help for gitform
Use "gitform [command] --help" for more information about a command.
$> gitform example 2 5 --add
7
$> gitform example 2 5 --multiply
10
Makefile Targets
$> make
bootstrap install build deps
build build golang binary
clean clean up environment
cover display test coverage
docker-build dockerize golang application
fmt format go files
help list makefile targets
install install golang binary
lint lint go files
pre-commit run pre-commit hooks
run run the app
test display test coverage
Contribute
If you find issues in that setup or have some nice features / improvements, I would welcome an issue or a PR :)