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  }