aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/ethereum/repl/repl_windows.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/ethereum/repl/repl_windows.go')
-rw-r--r--cmd/ethereum/repl/repl_windows.go75
1 files changed, 75 insertions, 0 deletions
diff --git a/cmd/ethereum/repl/repl_windows.go b/cmd/ethereum/repl/repl_windows.go
new file mode 100644
index 000000000..bfae57088
--- /dev/null
+++ b/cmd/ethereum/repl/repl_windows.go
@@ -0,0 +1,75 @@
+package ethrepl
+
+import (
+ "bufio"
+ "fmt"
+ "os"
+ "strings"
+)
+
+func (self *JSRepl) read() {
+ reader := bufio.NewReader(os.Stdin)
+ for {
+ fmt.Printf(self.prompt)
+ str, _, err := reader.ReadLine()
+ if err != nil {
+ fmt.Println("Error reading input", err)
+ } else {
+ if (string(str) == "exit") {
+ self.Stop()
+ break
+ } else {
+ self.parseInput(string(str))
+ }
+ }
+ }
+}
+
+func addHistory(s string) {
+}
+
+func printColored(outputVal string) {
+ for ; outputVal != "" ; {
+ codePart := ""
+ if (strings.HasPrefix(outputVal, "\033[32m")) {
+ codePart = "\033[32m"
+ changeColor(2)
+ }
+ if (strings.HasPrefix(outputVal, "\033[1m\033[30m")) {
+ codePart = "\033[1m\033[30m"
+ changeColor(8)
+ }
+ if (strings.HasPrefix(outputVal, "\033[31m")) {
+ codePart = "\033[31m"
+ changeColor(red)
+ }
+ if (strings.HasPrefix(outputVal, "\033[35m")) {
+ codePart = "\033[35m"
+ changeColor(5)
+ }
+ if (strings.HasPrefix(outputVal, "\033[0m")) {
+ codePart = "\033[0m"
+ resetColorful()
+ }
+ textPart := outputVal[len(codePart):len(outputVal)]
+ index := strings.Index(textPart, "\033")
+ if index == -1 {
+ outputVal = ""
+ } else {
+ outputVal = textPart[index:len(textPart)]
+ textPart = textPart[0:index]
+ }
+ fmt.Printf("%v", textPart)
+ }
+}
+
+func (self *JSRepl) PrintValue(v interface{}) {
+ method, _ := self.re.Vm.Get("prettyPrint")
+ v, err := self.re.Vm.ToValue(v)
+ if err == nil {
+ val, err := method.Call(method, v)
+ if err == nil {
+ printColored(fmt.Sprintf("%v", val))
+ }
+ }
+}