This change adds a handful of property binding tests. It also fixes: * AsName should assert IsName. * Enumerate properties stably, so that it is deterministic. * Do not issue errors about unrecognized properties for the special `mu/extension` type. It's entire purpose in life is to offer an entirely custom set of properties, which the provider is meant to validate. * Default to an empty map if properties are missing. * Add a "/" to the end of the namespace from the workspace, if present. And rearranges some code: * Rename the LiteralX types to XLiteral; e.g., StringLiteral instead of LiteralString. I kept typing XLiteral erroneously. * Eliminate the Mu prefix on all of the predefined type and service functions and types. It's superfluous and reads nicer this way. * Swap the order of "expected" vs. "got" in the error message about incorrect property types. It used to say "got %v, expected %v"; I personally find that it is more helpful if it says "expected %v, got %v". YMMV. |
||
---|---|---|
cmd | ||
docs | ||
examples | ||
lib | ||
pkg | ||
.gitignore | ||
.gitmodules | ||
glide.lock | ||
glide.yaml | ||
main.go | ||
Makefile | ||
README.md |
Mu
Mu is a framework and toolset for creating reusable stacks of services.
Building and Testing
To build Mu, first clone it into a standard Go workspace:
$ mkdir -p $GOPATH/src/github.com/marapongo
$ git clone git@github.com:marapongo/mu $GOPATH/src/github.com/marapongo/mu
A good default value for GOPATH
is ~/go
.
Mu needs to know where to look for its runtime, library, etc. By default, it will look in /usr/local/mu
, however you
can override this with the MUPATH
variable. Normally it's easiest just to create a symlink:
$ ln -s $GOPATH/src/github.com/marapongo/mu /usr/local/mu
There is one additional build-time dependency, golint
, which can be installed using:
$ go get -u github.com/golang/lint/golint
And placed on your path by:
$ export PATH=$PATH:$GOPATH/bin
At this point you should be able to build and run tests from the root directory:
$ cd $GOPATH/src/github.com/marapongo/mu
$ make
This installs the mu
binary into $GOPATH/bin
, which may now be run provided make
exited successfully.