github.com/loafoe/cli@v7.1.0+incompatible/command/v7/packages_command.go (about) 1 package v7 2 3 import ( 4 "strings" 5 "time" 6 7 "code.cloudfoundry.org/cli/command/flag" 8 "code.cloudfoundry.org/cli/util/ui" 9 ) 10 11 type PackagesCommand struct { 12 BaseCommand 13 14 RequiredArgs flag.AppName `positional-args:"yes"` 15 usage interface{} `usage:"CF_NAME packages APP_NAME"` 16 relatedCommands interface{} `related_commands:"droplets, create-package, app, push"` 17 } 18 19 func (cmd PackagesCommand) Execute(args []string) error { 20 err := cmd.SharedActor.CheckTarget(true, true) 21 if err != nil { 22 return err 23 } 24 25 user, err := cmd.Config.CurrentUser() 26 if err != nil { 27 return err 28 } 29 30 cmd.UI.DisplayTextWithFlavor("Getting packages of app {{.AppName}} in org {{.CurrentOrg}} / space {{.CurrentSpace}} as {{.CurrentUser}}...", map[string]interface{}{ 31 "AppName": cmd.RequiredArgs.AppName, 32 "CurrentSpace": cmd.Config.TargetedSpace().Name, 33 "CurrentOrg": cmd.Config.TargetedOrganization().Name, 34 "CurrentUser": user.Name, 35 }) 36 cmd.UI.DisplayNewline() 37 38 packages, warnings, err := cmd.Actor.GetApplicationPackages(cmd.RequiredArgs.AppName, cmd.Config.TargetedSpace().GUID) 39 cmd.UI.DisplayWarnings(warnings) 40 if err != nil { 41 return err 42 } 43 44 if len(packages) == 0 { 45 cmd.UI.DisplayText("No packages found.") 46 return nil 47 } 48 49 contents := [][]string{} 50 51 for _, pkg := range packages { 52 t, err := time.Parse(time.RFC3339, pkg.CreatedAt) 53 if err != nil { 54 return err 55 } 56 57 contents = append(contents, []string{ 58 pkg.GUID, 59 cmd.UI.TranslateText(strings.ToLower(string(pkg.State))), 60 cmd.UI.UserFriendlyDate(t), 61 }) 62 } 63 64 table := [][]string{ 65 { 66 cmd.UI.TranslateText("guid"), 67 cmd.UI.TranslateText("state"), 68 cmd.UI.TranslateText("created"), 69 }, 70 } 71 72 for _, p := range contents { 73 table = append(table, p) 74 } 75 76 cmd.UI.DisplayTableWithHeader("", table, ui.DefaultTableSpacePadding) 77 78 return nil 79 }