convox/pkg/cli/switch.go
David Dollar a7f20d9f29
cli: terraform rack management (#79)
* vendor

* local rack management via terraform

* update mocks

* update tests for new local rack management

* clean up rack matcher and add more tests

* switch to rack after install, add more tests
2020-01-24 13:23:08 -05:00

40 lines
636 B
Go

package cli
import (
"github.com/convox/convox/sdk"
"github.com/convox/stdcli"
)
func init() {
registerWithoutProvider("switch", "switch current rack", Switch, stdcli.CommandOptions{
Validate: stdcli.ArgsMax(1),
})
}
func Switch(rack sdk.Interface, c *stdcli.Context) error {
host, err := currentHost(c)
if err != nil {
return err
}
name := c.Arg(0)
if name == "" {
c.Writef("%s\n", currentRack(c, host))
return nil
}
r, err := matchRack(c, name)
if err != nil {
return err
}
if err := switchRack(c, r.Name); err != nil {
return err
}
c.Writef("Switched to <rack>%s</rack>\n", r.Name)
return nil
}