A collection of libraries and commands for GWT's automated build
infrastructure.

The main tool of interest is the "presubmitter" command, which
periodically polls Gerrit for new unverified changes and runs various
presubmit checks on them.

Buildglue follows normal Go project conventions, so it can be
downloaded and installed in just a few steps:

  # Configure Git to use https:// instead of git://
  # (Optional, but makes "go get" below much faster.)
  git config --global url.https://gwt.googlesource.com/.insteadOf git://gwt.googlesource.com/

  # Create a Go workspace (if you don't have one already)
  mkdir buildglue
  export GOPATH=$PWD/buildglue

  # Invoke the go tool
  go get gwt.googlesource.com/buildglue.git/...

The $GOPATH/src/gwt.googlesource.com/buildglue.git directory will now
contain a clone of the buildglue Git repo, and the $GOPATH/bin
directory will contain the compiled commands.
