You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ro...@apache.org on 2018/04/13 22:06:57 UTC

[cloudstack-cloudmonkey] 04/04: prompt: emoji-roulette on new shell

This is an automated email from the ASF dual-hosted git repository.

rohit pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cloudstack-cloudmonkey.git

commit 88fcf8fe17735eb8a29613f228960815c189550b
Author: Rohit Yadav <ro...@apache.org>
AuthorDate: Sat Apr 14 03:35:58 2018 +0530

    prompt: emoji-roulette on new shell
    
    Signed-off-by: Rohit Yadav <ro...@apache.org>
---
 cli/shell.go     |  1 +
 config/config.go |  2 --
 config/prompt.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/cli/shell.go b/cli/shell.go
index 1dfc075..903a607 100644
--- a/cli/shell.go
+++ b/cli/shell.go
@@ -57,6 +57,7 @@ func ExecShell(cfg *config.Config) {
 	cfg.PrintHeader()
 
 	for {
+		shell.SetPrompt(cfg.GetPrompt())
 		line, err := shell.Readline()
 		if err == readline.ErrInterrupt {
 			continue
diff --git a/config/config.go b/config/config.go
index b89cc54..e5336e5 100644
--- a/config/config.go
+++ b/config/config.go
@@ -151,8 +151,6 @@ func reloadConfig(cfg *Config) *Config {
 	}
 	// Save
 	conf.SaveTo(cfg.ConfigFile)
-
-	fmt.Println("Updating config to:", cfg.Core, cfg.Core.ActiveProfile)
 	return cfg
 }
 
diff --git a/config/prompt.go b/config/prompt.go
new file mode 100644
index 0000000..ea8dd82
--- /dev/null
+++ b/config/prompt.go
@@ -0,0 +1,48 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package config
+
+import (
+	"fmt"
+	"math/rand"
+	"runtime"
+	"strings"
+	"time"
+)
+
+var emojis []string
+
+func init() {
+	rand.Seed(time.Now().Unix())
+	emojis = strings.Split("🐶 🐹 🐰 🐻 🐼 🐨 🐯 🦁 🐷 🐙 🙈 🙉 🙊 🐒 🐔 🐧 🐦 🐤 🐣 🐥 🐺 🐗 🐴 🦄 🐝 🐛 🐌 🐞 🐜 🕷 🦂 🦀 🐍 🐢 🐠 🐟 🐡 🐬 🐳 🐋 🐅 🐃 🐂 🐄 🐘 🐐 🐑 🐎 🐖 🐀 🐓 🦃 🕊 🐕 🐩 🐈 🐇 🐿  🐲 🌵 🦍 🦊 🦌 🦏 🦇 🦅 🦆 🦉 🦈 🦐 🦑 🦋 🌴 🍀 🍂 🍁 🍄 🌍 ⛅️", " ")
+}
+
+func emoji() string {
+	return emojis[rand.Intn(len(emojis)-1)]
+}
+
+func promptMoji() string {
+	if runtime.GOOS == "windows" {
+		return "cmk"
+	}
+	return emoji() // 🐒
+}
+
+func (c *Config) GetPrompt() string {
+	return fmt.Sprintf("(%s) %s > ", c.Core.ProfileName, promptMoji())
+}

-- 
To stop receiving notification emails like this one, please contact
rohit@apache.org.