A golang code generator
A Yeoman generator for the golang programming language.
What is golang ?
See the Golang documentation
Why a generator ?
The Golang team defined guidelines to organize code and structure an application.
The generator builds a standard directory hierarchy complying with those guidelines.
Vendoring
This example relies on vendoring for all dependencies. It uses go dep for this purpose.
Versioning
Version is extracted from git tags using anything prefixed by v
.
Usage
The following commands are available:
-
make help
to get help -
make
to build the binary (inbin/
) -
make test
to run tests -
make test-verbose
to run tests in verbose mode -
make test-race
for race tests -
make test-xml
for tests with xUnit-compatible output -
make test-coverage
for test coverage (will outputindex.html
,coverage.xml
andprofile.out
intest/coverage.*/
. -
make test PKG=helloworld/hello
to restrict test to a package make clean
-
make vendor
to retrieve dependencies -
make lint
to run golint -
make fmt
to run gofmt
That's all folks !
This will generate a minimalist directory hierarchy, a makefile and a .gitignore.
myapp ├── hello │ ├── hello.go # source file │ └── hello_test.go # test file ├── main.go # app entrypoint ├── Makefile ├── README.md ├── .dockerignore ├── Dockerfile ├── Gopkg.lock ├── Gopkg.toml └── .gitignore
How to contribute
-
Fork the project
-
Clone your forked project locally
$ sudo git clone https://github.com/your_repo/generator-gmd.git
$ cd generator-gmd
-
Modify sources
-
Symlink the package folder
$ sudo npm link
- Test your generator
$ yo gmd
- Submit a pull request
This project welcomes all contributors, feel free to apply !
Dependencies
This project depends on
Acknowledgment
This project is based on multiple project
- bench/generator-go has a very nice go generator
- vincentbernat/hellogopher is the author of the Makefile
- Pierre Prinetti inspired me the Dockerfile