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  }