github.com/engineyard/workflow-cli@v2.21.6+incompatible/parser/maintenance.go (about) 1 package parser 2 3 import ( 4 "github.com/teamhephy/workflow-cli/cmd" 5 docopt "github.com/docopt/docopt-go" 6 ) 7 8 // Maintenance displays all relevant commands for `deis maintenance`. 9 func Maintenance(argv []string, cmdr cmd.Commander) error { 10 usage := ` 11 Valid commands for maintenance: 12 13 maintenance:info view maintenance mode of an application 14 maintenance:on turn on maintenance for an app 15 maintenance:off turn off maintenance for an app 16 17 Use 'deis help [command]' to learn more. 18 ` 19 20 switch argv[0] { 21 case "maintenance:info": 22 return maintenanceInfo(argv, cmdr) 23 case "maintenance:on": 24 return maintenanceEnable(argv, cmdr) 25 case "maintenance:off": 26 return maintenanceDisable(argv, cmdr) 27 default: 28 if printHelp(argv, usage) { 29 return nil 30 } 31 32 if argv[0] == "maintenance" { 33 argv[0] = "maintenance:info" 34 return maintenanceInfo(argv, cmdr) 35 } 36 37 PrintUsage(cmdr) 38 return nil 39 } 40 } 41 42 func maintenanceInfo(argv []string, cmdr cmd.Commander) error { 43 usage := ` 44 Prints info about the current application's maintenance state. 45 46 Usage: deis maintenance:info [options] 47 48 Options: 49 -a --app=<app> 50 the uniquely identifiable name for the application. 51 ` 52 53 args, err := docopt.Parse(usage, argv, true, "", false, true) 54 55 if err != nil { 56 return err 57 } 58 59 return cmdr.MaintenanceInfo(safeGetValue(args, "--app")) 60 } 61 62 func maintenanceEnable(argv []string, cmdr cmd.Commander) error { 63 usage := ` 64 Enables maintenance mode for an app. 65 66 Usage: deis maintenance:on [options] 67 68 Options: 69 -a --app=<app> 70 the uniquely identifiable name of the application. 71 ` 72 73 args, err := docopt.Parse(usage, argv, true, "", false, true) 74 75 if err != nil { 76 return err 77 } 78 79 return cmdr.MaintenanceEnable(safeGetValue(args, "--app")) 80 } 81 82 func maintenanceDisable(argv []string, cmdr cmd.Commander) error { 83 usage := ` 84 Disables maintenance mode for an app. 85 86 Usage: deis maintenance:off [options] 87 88 Options: 89 -a --app=<app> 90 the uniquely identifiable name of the application. 91 ` 92 93 args, err := docopt.Parse(usage, argv, true, "", false, true) 94 95 if err != nil { 96 return err 97 } 98 99 return cmdr.MaintenanceDisable(safeGetValue(args, "--app")) 100 }