[lucicfg] Boilerplate for command line interface.

Follows current "best practices" of CLIs in luci-go:
  * All subcommands have -log-level and -json-output.
  * Subcommand that do RPCs consistently expose auth and service host options.
  * All Chrome Infra hardcoded stuff is replaceable (if only anyone wanted to
    replace it).
  * Has version string that also ends up in User-Agent strings.
  * Supports required positional arguments and required flags.

R=iannucci@chromium.org
BUG=833946

Change-Id: I792d416e21fe82220eda9df8eed49e729c70d40b
Reviewed-on: https://chromium-review.googlesource.com/c/1368813
Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
8 files changed
tree: 6937b67f39dca7983ba8e07492a74e44b2c61c5d
  1. appengine/
  2. auth/
  3. buildbucket/
  4. cipd/
  5. client/
  6. common/
  7. config/
  8. dm/
  9. examples/
  10. gce/
  11. grpc/
  12. hardcoded/
  13. infra/
  14. logdog/
  15. luci_notify/
  16. lucicfg/
  17. lucictx/
  18. machine-db/
  19. milo/
  20. mmutex/
  21. mp/
  22. scheduler/
  23. scripts/
  24. server/
  25. starlark/
  26. tokenserver/
  27. tools/
  28. tumble/
  29. vpython/
  30. web/
  31. .travis.yml
  32. AUTHORS
  33. codereview.settings
  34. CONTRIBUTING.md
  35. CONTRIBUTORS
  36. LICENSE
  37. OWNERS
  38. pre-commit-go.yml
  39. PRESUBMIT.py
  40. README.md
README.md

luci-go: LUCI services and tools in Go

GoDoc

Installing

LUCI Go code is meant to be worked on from an Chromium infra.git checkout, which enforces packages versions and Go toolchain version. First get fetch via depot_tools.git then run:

fetch infra
cd infra/go
eval `./env.py`
cd src/go.chromium.org/luci

Contributing

Contributing uses the same flow as Chromium contributions.