1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: Apache-2.0
13 "git.curoverse.com/arvados.git/sdk/go/arvados"
14 "github.com/ghodss/yaml"
17 func Get(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
21 fmt.Fprintf(stderr, "%s\n", err)
25 flags := flag.NewFlagSet(prog, flag.ContinueOnError)
26 format := flags.String("format", "json", "output format (json or yaml)")
27 err = flags.Parse(args)
31 if len(flags.Args()) != 1 {
37 client := arvados.NewClientFromEnv()
38 path, err := client.PathForUUID("show", id)
43 var obj map[string]interface{}
44 err = client.RequestAndDecode(&obj, "GET", path, nil, nil)
46 err = fmt.Errorf("GET %s: %s", path, err)
49 if *format == "yaml" {
51 buf, err = yaml.Marshal(obj)
53 _, err = stdout.Write(buf)
56 enc := json.NewEncoder(stdout)
57 enc.SetIndent("", " ")
61 err = fmt.Errorf("encoding: %s", err)