github.com/jcarley/cli@v0.0.0-20180201210820-966d90434c30/commands/images/targets/status.go (about) 1 package targets 2 3 import ( 4 "github.com/Sirupsen/logrus" 5 "github.com/daticahealth/cli/commands/environments" 6 "github.com/daticahealth/cli/lib/images" 7 "github.com/daticahealth/cli/models" 8 "github.com/docker/notary/client/changelist" 9 ) 10 11 func cmdTargetsStatus(envID, imageName string, user *models.User, ie environments.IEnvironments, ii images.IImages) error { 12 env, err := ie.Retrieve(envID) 13 if err != nil { 14 return err 15 } 16 17 repositoryName, tag, err := ii.GetGloballyUniqueNamespace(imageName, env, true) 18 if err != nil { 19 return err 20 } 21 repo := ii.GetNotaryRepository(env.Pod, repositoryName, user) 22 changelist, err := repo.GetChangelist() 23 if err != nil { 24 return err 25 } 26 changes := filterChanges(changelist.List(), tag) 27 if len(changes) > 0 { 28 ii.PrintChangelist(changes) 29 } else { 30 logrus.Printf("No unpublished changes for %s\n", repositoryName) 31 } 32 return nil 33 } 34 35 func filterChanges(changes []changelist.Change, tag string) (filteredList []changelist.Change) { 36 if tag == "" { 37 return changes 38 } 39 for _, change := range changes { 40 if change.Path() == tag { 41 filteredList = append(filteredList, change) 42 } 43 } 44 return filteredList 45 }