import (
"encoding/json"
- "flag"
"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"
)
-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 {
}
}()
- flags := flag.NewFlagSet(prog, flag.ContinueOnError)
- format := flags.String("format", "json", "output format (json or yaml)")
+ flags, opts := LegacyFlagSet()
+ flags.SetOutput(stderr)
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
}
+ if opts.Short {
+ opts.Format = "uuid"
+ }
id := flags.Args()[0]
client := arvados.NewClientFromEnv()
err = fmt.Errorf("GET %s: %s", path, err)
return 1
}
- if *format == "yaml" {
+ if opts.Format == "yaml" {
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("", " ")