github.com/jcarley/cli@v0.0.0-20180201210820-966d90434c30/commands/images/targets/list.go (about) 1 package targets 2 3 import ( 4 "fmt" 5 6 "github.com/Sirupsen/logrus" 7 "github.com/daticahealth/cli/commands/environments" 8 "github.com/daticahealth/cli/lib/images" 9 "github.com/daticahealth/cli/models" 10 "github.com/olekukonko/tablewriter" 11 ) 12 13 func cmdTargetsList(envID, imageName string, user *models.User, ie environments.IEnvironments, ii images.IImages) error { 14 env, err := ie.Retrieve(envID) 15 if err != nil { 16 return err 17 } 18 19 var targets []*images.Target 20 21 repositoryName, tag, err := ii.GetGloballyUniqueNamespace(imageName, env, true) 22 if err != nil { 23 return err 24 } 25 repo := ii.GetNotaryRepository(env.Pod, repositoryName, user) 26 if tag == "" { 27 logrus.Printf("Searching for signed targets in trust repository %s\n", repositoryName) 28 targets, err = ii.ListTargets(repo) 29 if err != nil { 30 return err 31 } 32 } else { 33 logrus.Printf("Searching for signed target \"%s\" in trust repository %s\n", tag, repositoryName) 34 target, err := ii.LookupTarget(repo, tag) 35 if err != nil { 36 return err 37 } 38 targets = append(targets, target) 39 } 40 41 if len(targets) > 0 { 42 data := [][]string{{"Name", "Digest", "Size", "Role"}, {"----", "------", "----", "----"}} 43 for _, t := range targets { 44 data = append(data, []string{t.Name, string(t.Digest), fmt.Sprintf("%v", t.Size), t.Role}) 45 } 46 47 table := tablewriter.NewWriter(logrus.StandardLogger().Out) 48 table.SetBorder(false) 49 table.SetRowLine(false) 50 table.SetAlignment(1) 51 table.SetCenterSeparator("") 52 table.SetColumnSeparator("") 53 table.SetRowSeparator("") 54 table.AppendBulk(data) 55 table.Render() 56 logrus.Println() 57 } else { 58 logrus.Printf("No signed targets in remote trust repository %s\n", repositoryName) 59 } 60 return nil 61 }