veyron/lib/cmdline: Add ErrExitCode to support exit codes.
Previously cmdline users had to call os.Exit directly within
their Run function in order to have their program exit with a
specific error code. After this change, they can return an error
of type ErrExitCode to specify an explicit exit code.
ErrUsage has been updated to simply correspond to ErrExitCode(1).
Command.Errorf() is renamed to Command.UsageErrorf(), to make it
more obvious that it will print out the usage.
Change-Id: Ie8948edf8cd1d3cac87efefcf5b43459691998a0
diff --git a/tools/application/impl/impl.go b/tools/application/impl/impl.go
index fccb840..8af0a9f 100644
--- a/tools/application/impl/impl.go
+++ b/tools/application/impl/impl.go
@@ -64,7 +64,7 @@
func runMatch(cmd *cmdline.Command, args []string) error {
if expected, got := 2, len(args); expected != got {
- return cmd.Errorf("match: incorrect number of arguments, expected %d, got %d", expected, got)
+ return cmd.UsageErrorf("match: incorrect number of arguments, expected %d, got %d", expected, got)
}
name, profiles := args[0], args[1]
app, err := repository.BindApplication(name)
@@ -95,7 +95,7 @@
func runPut(cmd *cmdline.Command, args []string) error {
if expected, got := 3, len(args); expected != got {
- return cmd.Errorf("put: incorrect number of arguments, expected %d, got %d", expected, got)
+ return cmd.UsageErrorf("put: incorrect number of arguments, expected %d, got %d", expected, got)
}
name, profiles, envelope := args[0], args[1], args[2]
app, err := repository.BindApplication(name)
@@ -128,7 +128,7 @@
func runRemove(cmd *cmdline.Command, args []string) error {
if expected, got := 2, len(args); expected != got {
- return cmd.Errorf("remove: incorrect number of arguments, expected %d, got %d", expected, got)
+ return cmd.UsageErrorf("remove: incorrect number of arguments, expected %d, got %d", expected, got)
}
name, profile := args[0], args[1]
app, err := repository.BindApplication(name)
@@ -157,7 +157,7 @@
func runEdit(cmd *cmdline.Command, args []string) error {
if expected, got := 2, len(args); expected != got {
- return cmd.Errorf("edit: incorrect number of arguments, expected %d, got %d", expected, got)
+ return cmd.UsageErrorf("edit: incorrect number of arguments, expected %d, got %d", expected, got)
}
name, profile := args[0], args[1]
app, err := repository.BindApplication(name)