Commit graph

6 commits

Author SHA1 Message Date
joeduffy 24990062ad Run golint during make
This change runs golint during make by default, but suppresses the
class of errors we are currently permitting into the code (just those
about public documentation on APIs).
2017-04-12 11:01:16 -07:00
joeduffy 9d7bbcfa78 Restructure source layout for tools
This change restructures the overall structure for commands so that
all top-level tools are in the cmd/ directory, alongside the primary
coco command.  This is more "idiomatic Go" in its layout, and makes
room for additional command line tools (like cocogo for IDL).
2017-04-12 10:38:12 -07:00
joeduffy fbb56ab5df Coconut! 2017-02-25 07:25:33 -08:00
joeduffy 5774999957 Clean up the Makefile
This adds a bunch of independent targets to the Makefile, to help
run individual commands as needed.  It also skips running `golint`
by default (per golint's advice, actually), because it spews lots
of documentation-related things at the moment, which we are
intentionally ignoring.  (Mainly just hundreds of public members
without comments; eventually we'll need to tackle this.)
2017-01-27 15:42:55 -08:00
joeduffy a4ac29554d Test packages when making the project 2016-11-15 19:25:06 -08:00
joeduffy e75f06bb2b Sketch a mu build command and its scaffolding
This adds a bunch of general scaffolding and the beginning of a `build` command.

The general engineering scaffolding includes:

* Glide for dependency management.
* A Makefile that runs govet and golint during builds.
* Google's Glog library for logging.
* Cobra for command line functionality.

The Mu-specific scaffolding includes some packages:

* mu/pkg/diag: A package for compiler-like diagnostics.  It's fairly barebones
  at the moment, however we can embellish this over time.
* mu/pkg/errors: A package containing Mu's predefined set of errors.
* mu/pkg/workspace: A package containing workspace-related convenience helpers.

in addition to a main entrypoint that simply wires up and invokes the CLI.  From
there, the mu/cmd package takes over, with the Cobra-defined CLI commands.

Finally, the mu/pkg/compiler package actually implements the compiler behavior.
Or, it will.  For now, it simply parses a JSON or YAML Mufile into the core
mu/pkg/api types, and prints out the result.
2016-11-15 14:30:34 -05:00