projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '18513-log-signal-exit'
[arvados.git]
/
lib
/
cli
/
get.go
diff --git
a/lib/cli/get.go
b/lib/cli/get.go
index 725c696a4dbb19dfa833b06e7fa9cd9390bf2b2a..9625214e22ebd1c805fe0ae21b04c47e2304aece 100644
(file)
--- a/
lib/cli/get.go
+++ b/
lib/cli/get.go
@@
-6,15
+6,19
@@
package cli
import (
"encoding/json"
import (
"encoding/json"
- "flag"
"fmt"
"io"
"fmt"
"io"
- "git.curoverse.com/arvados.git/sdk/go/arvados"
+ "git.arvados.org/arvados.git/lib/cmd"
+ "git.arvados.org/arvados.git/sdk/go/arvados"
"github.com/ghodss/yaml"
)
"github.com/ghodss/yaml"
)
-func Get(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
+var Get cmd.Handler = getCmd{}
+
+type getCmd struct{}
+
+func (getCmd) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
var err error
defer func() {
if err != nil {
var err error
defer func() {
if err != nil {
@@
-22,16
+26,20
@@
func Get(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer)
}
}()
}
}()
- flags
:= flag.NewFlagSet(prog, flag.ContinueOnError
)
- f
ormat := flags.String("format", "json", "output format (json or yaml)"
)
+ flags
, opts := LegacyFlagSet(
)
+ f
lags.SetOutput(stderr
)
err = flags.Parse(args)
if err != nil {
return 2
}
if len(flags.Args()) != 1 {
err = flags.Parse(args)
if err != nil {
return 2
}
if len(flags.Args()) != 1 {
- flags.Usage()
+ fmt.Fprintf(stderr, "usage of %s:\n", prog)
+ flags.PrintDefaults()
return 2
}
return 2
}
+ if opts.Short {
+ opts.Format = "uuid"
+ }
id := flags.Args()[0]
client := arvados.NewClientFromEnv()
id := flags.Args()[0]
client := arvados.NewClientFromEnv()
@@
-46,12
+54,14
@@
func Get(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer)
err = fmt.Errorf("GET %s: %s", path, err)
return 1
}
err = fmt.Errorf("GET %s: %s", path, err)
return 1
}
- if
*f
ormat == "yaml" {
+ if
opts.F
ormat == "yaml" {
var buf []byte
buf, err = yaml.Marshal(obj)
if err == nil {
_, err = stdout.Write(buf)
}
var buf []byte
buf, err = yaml.Marshal(obj)
if err == nil {
_, err = stdout.Write(buf)
}
+ } else if opts.Format == "uuid" {
+ fmt.Fprintln(stdout, obj["uuid"])
} else {
enc := json.NewEncoder(stdout)
enc.SetIndent("", " ")
} else {
enc := json.NewEncoder(stdout)
enc.SetIndent("", " ")