/
get_dep_devices.go
48 lines (43 loc) · 1.23 KB
/
get_dep_devices.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package main
import (
"context"
"errors"
"flag"
"fmt"
"os"
"strings"
"text/tabwriter"
)
type depDevicesTableOutput struct{ w *tabwriter.Writer }
func (out *depDevicesTableOutput) BasicHeader() {
fmt.Fprintf(out.w, "SerialNumber\tModel\tProfileStatus\tProfileUUID\n")
}
func (out *depDevicesTableOutput) BasicFooter() {
out.w.Flush()
}
func (cmd *getCommand) getDEPDevices(args []string) error {
flagset := flag.NewFlagSet("dep-devices", flag.ExitOnError)
flSerials := flagset.String("serials", "", "comma separated list of device serials")
flagset.Usage = usageFor(flagset, "mdmctl get dep-devices [flags]")
if err := flagset.Parse(args); err != nil {
return err
}
if *flSerials == "" {
flagset.Usage()
return errors.New("bad input: must provide a comma separated list of DEP serials")
}
w := tabwriter.NewWriter(os.Stdout, 0, 4, 2, ' ', 0)
out := &depDevicesTableOutput{w}
out.BasicHeader()
defer out.BasicFooter()
ctx := context.Background()
serials := strings.Split(*flSerials, ",")
resp, err := cmd.depsvc.GetDeviceDetails(ctx, serials)
if err != nil {
return err
}
for _, d := range resp.Devices {
fmt.Fprintf(out.w, "%s\t%s\t%s\t%s\n", d.SerialNumber, d.Model, d.ProfileStatus, d.ProfileUUID)
}
return nil
}