goberry

command module
v0.0.0-...-89c5f3e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2015 License: MIT Imports: 13 Imported by: 0

README

GOBERRY - Economist vanilla microservice template.

SETUP

  1. Clone this repository into your GOPATH.
  2. Run godep restore to get the minimal dependencies.
  3. Drop the .git folder.
  4. Design your RAML API interface.
  5. Run raml-gen which will generate HTTP handlers for your service.
  6. Copy the generated handlers_gen.go file to handlers.go.
  7. Run git init.
  8. Run go install to build the binary, run it in the app root.
  9. The ramlapi package will wire up your endpoints to the handlers.
  10. Now build out your service.

12-FACTOR GOODNESS

We are aiming to make our microservices 12 factor

  • Create a .env file for environment variables and drop into the project root. The godotenv package will then parse this file and set environment variables for everything contained in this file.

MAKEFILE

The Makefile provides the following:

  • gomkbuild: build the application binary.
  • gomkinstall: install the application binary.
  • buildstamp: build the appication binary, and when the binary is run with the --version flag, log build date and build commit hash (default stdout).
    • installstamp: install the appication binary, and when the binary is run with the --version flag, log build date and build commit hash (default stdout).
  • gomkxbuild: build all cross-platform binaries, using gox.
  • gomkclean: clean the project directory.
  • vet: run go tool vet on each source file.
  • lint: run golint on each source file.
  • fmt: run go fmt on the entire project.
  • test: run go test for all packages in the project.
  • race: run go test with race detection in all packages in the project.
  • cover: run tests with coverage report in all pkgs in the project.
  • printvars: print all variables defined in the Makefile.

BUILD INFORMATION

To build the service and drop build date information, build as follows:

go build -ldflags "-X main.buildstamp `date -u '+%Y-%m-%d_%I:%M:%S%p'` -X main.githash `git rev-parse HEAD`"

Then run --version=yes

TESTS

Run make test for boring old black and white test output.

Run pride to get nicely colorized test output.

SERVICE DISCOVERY

The goconsul.json file is present to hook up to a package being built to plug into consul

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Godeps
_workspace/src/github.com/buddhamagnet/raml
This package contains the parser, validator and types that implement the RAML specification, as documented here: http://raml.org/spec.html
This package contains the parser, validator and types that implement the RAML specification, as documented here: http://raml.org/spec.html
_workspace/src/github.com/buddhamagnet/yaml
Package yaml implements YAML support for the Go language.
Package yaml implements YAML support for the Go language.
_workspace/src/github.com/gorilla/context
Package context stores values shared during a request lifetime.
Package context stores values shared during a request lifetime.
_workspace/src/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
_workspace/src/github.com/joho/godotenv
Package godotenv is a go port of the ruby dotenv library (https://github.com/bkeepers/dotenv) Examples/readme can be found on the github page at https://github.com/joho/godotenv The TL;DR is that you make a .env file that looks something like SOME_ENV_VAR=somevalue and then in your go code you can call godotenv.Load() and all the env vars declared in .env will be avaiable through os.Getenv("SOME_ENV_VAR")
Package godotenv is a go port of the ruby dotenv library (https://github.com/bkeepers/dotenv) Examples/readme can be found on the github page at https://github.com/joho/godotenv The TL;DR is that you make a .env file that looks something like SOME_ENV_VAR=somevalue and then in your go code you can call godotenv.Load() and all the env vars declared in .env will be avaiable through os.Getenv("SOME_ENV_VAR")
_workspace/src/gopkg.in/logfmt.v0
Package logfmt implements utilities to marshal and unmarshal data in the logfmt format.
Package logfmt implements utilities to marshal and unmarshal data in the logfmt format.
_workspace/src/gopkg.in/stack.v1
Package stack implements utilities to capture, manipulate, and format call stacks.
Package stack implements utilities to capture, manipulate, and format call stacks.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL