diff --git a/cmd/control/console.go b/cmd/control/console.go index 0afae98b..071410c9 100644 --- a/cmd/control/console.go +++ b/cmd/control/console.go @@ -3,7 +3,10 @@ package control import ( "bufio" "fmt" + "io/ioutil" "os" + "sort" + "strings" "golang.org/x/net/context" @@ -121,10 +124,25 @@ func consoleList(c *cli.Context) error { if err != nil { return err } + consoles = append(consoles, "default") + sort.Strings(consoles) + + var currentConsole string + currentConsoleBytes, err := ioutil.ReadFile("/run/console-done") + if err == nil { + currentConsole = strings.TrimSpace(string(currentConsoleBytes)) + } else { + log.Warnf("Failed to detect current console: %v", err) + } - fmt.Println("default") for _, console := range consoles { - fmt.Println(console) + if console == currentConsole { + fmt.Printf("current %s\n", console) + } else if console == cfg.Rancher.Console { + fmt.Printf("enabled %s\n", console) + } else { + fmt.Printf("disabled %s\n", console) + } } return nil diff --git a/cmd/switchconsole/switch_console.go b/cmd/switchconsole/switch_console.go index fef54ea6..b3681bf2 100644 --- a/cmd/switchconsole/switch_console.go +++ b/cmd/switchconsole/switch_console.go @@ -29,6 +29,10 @@ func Main() { } } + if err = config.Set("rancher.console", newConsole); err != nil { + log.Errorf("Failed to update 'rancher.console': %v", err) + } + if err = project.Up(context.Background(), options.Up{ Log: true, }, "console"); err != nil { @@ -38,8 +42,4 @@ func Main() { 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) - } } diff --git a/images/02-console/console.sh b/images/02-console/console.sh index 6e61d59a..ec292543 100755 --- a/images/02-console/console.sh +++ b/images/02-console/console.sh @@ -126,7 +126,7 @@ if [ -x /opt/rancher/bin/start.sh ]; then /opt/rancher/bin/start.sh || true fi -touch /run/console-done +echo `ros config get rancher.console` > /run/console-done if [ -x /etc/rc.local ]; then echo Executing rc.local