github.com/koron/hk@v0.0.0-20150303213137-b8aeaa3ab34c/maintenance.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "log" 6 "os" 7 8 "github.com/heroku/hk/Godeps/_workspace/src/github.com/bgentry/heroku-go" 9 ) 10 11 var cmdMaintenance = &Command{ 12 Run: runMaintenance, 13 Usage: "maintenance", 14 NeedsApp: true, 15 Category: "app", 16 Short: "show app maintenance mode" + extra, 17 Long: ` 18 Maintenance shows the current maintenance mode state of an app. 19 20 Example: 21 22 $ hk maintenance 23 enabled 24 `, 25 } 26 27 func runMaintenance(cmd *Command, args []string) { 28 if len(args) != 0 { 29 cmd.PrintUsage() 30 os.Exit(2) 31 } 32 app, err := client.AppInfo(mustApp()) 33 must(err) 34 state := "disabled" 35 if app.Maintenance { 36 state = "enabled" 37 } 38 fmt.Println(state) 39 } 40 41 var cmdMaintenanceEnable = &Command{ 42 Run: runMaintenanceEnable, 43 Usage: "maintenance-enable", 44 NeedsApp: true, 45 Category: "app", 46 Short: "enable maintenance mode" + extra, 47 Long: ` 48 Enables maintenance mode on an app. 49 50 Example: 51 52 $ hk maintenance-enable 53 Enabled maintenance mode on myapp. 54 `, 55 } 56 57 func runMaintenanceEnable(cmd *Command, args []string) { 58 if len(args) != 0 { 59 cmd.PrintUsage() 60 os.Exit(2) 61 } 62 newmode := true 63 app, err := client.AppUpdate(mustApp(), &heroku.AppUpdateOpts{Maintenance: &newmode}) 64 must(err) 65 log.Printf("Enabled maintenance mode on %s.", app.Name) 66 } 67 68 var cmdMaintenanceDisable = &Command{ 69 Run: runMaintenanceDisable, 70 Usage: "maintenance-disable", 71 NeedsApp: true, 72 Category: "app", 73 Short: "disable maintenance mode" + extra, 74 Long: ` 75 Disables maintenance mode on an app. 76 77 Example: 78 79 $ hk maintenance-disable 80 Disabled maintenance mode on myapp. 81 `, 82 } 83 84 func runMaintenanceDisable(cmd *Command, args []string) { 85 if len(args) != 0 { 86 cmd.PrintUsage() 87 os.Exit(2) 88 } 89 newmode := false 90 app, err := client.AppUpdate(mustApp(), &heroku.AppUpdateOpts{Maintenance: &newmode}) 91 must(err) 92 log.Printf("Disabled maintenance mode on %s.", app.Name) 93 }