mirror of
https://github.com/rancher/os.git
synced 2025-06-01 11:25:51 +00:00
42 lines
919 B
Go
42 lines
919 B
Go
|
package switchconsole
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
|
||
|
log "github.com/Sirupsen/logrus"
|
||
|
"github.com/docker/libcompose/project/options"
|
||
|
"github.com/rancher/os/compose"
|
||
|
"github.com/rancher/os/config"
|
||
|
"golang.org/x/net/context"
|
||
|
)
|
||
|
|
||
|
func Main() {
|
||
|
if len(os.Args) != 2 {
|
||
|
log.Fatal("Must specify exactly one existing container")
|
||
|
}
|
||
|
newConsole := os.Args[1]
|
||
|
|
||
|
cfg := config.LoadConfig()
|
||
|
|
||
|
project, err := compose.GetProject(cfg, true)
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
|
||
|
if err = compose.LoadService(project, cfg, true, newConsole); err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
|
||
|
if err = project.Up(context.Background(), options.Up{}, "console"); err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
|
||
|
if err = project.Restart(context.Background(), 10, "docker"); err != nil {
|
||
|
log.Errorf("Failed to restart Docker: %v", err)
|
||
|
}
|
||
|
|
||
|
if err = config.Set("rancher.console", newConsole); err != nil {
|
||
|
log.Errorf("Failed to update 'rancher.console': %v", err)
|
||
|
}
|
||
|
}
|