From 76de31802f21549ec74856aafed9621cb0616e86 Mon Sep 17 00:00:00 2001 From: Sean Hinchee Date: Wed, 26 Jul 2017 18:36:25 +0000 Subject: [PATCH] Isolating raw mode and getpass code --- README.md | 4 ++-- config.go | 30 ++++++++---------------------- helper.go | 43 +++++++++++++++++++++++++++++++++++++++++++ main.go | 6 ++++-- 4 files changed, 57 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 69d8277d6ec6e28851e703c04cd9897f4a4a2411..8a3bd56449d0c95497bc5ca30b777f117719f415 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Hacked up version of theboxmage's [discord-cli](https://github.com/theboxmage/discordcli) -JSON config is in `$home/lib//lib/disco.cfg` for setting password, should be made automatically after first run. +JSON config is in `$home/lib/disco.cfg` for setting password, should be made automatically after first run. ## Install @@ -27,7 +27,7 @@ Commands available in chat: | Command | Function | | ------------- |-------------| -| :q | Quits discord-cli | +| :q | Quits disco | | :g | Change listening Guild| | :c | Change listening Channel inside Guild | | :m [n] | Display last [n] messages: ex. `:m 2` displays last two messages | diff --git a/config.go b/config.go index 42f164503f00644ae4474cf294e2667a113f9a9a..02842cd747ecb75261e7247a01c7be53fd21760e 100644 --- a/config.go +++ b/config.go @@ -58,44 +58,30 @@ func CreateConfig() { var EmptyStruct Configuration //Set Default values - fmt.Println("Input your email") + fmt.Print("Input your email: ") scan := bufio.NewScanner(os.Stdin) scan.Scan() EmptyStruct.Username = scan.Text() - fmt.Println("Input your password") + fmt.Print("Input your password: ") //password, err := terminal.ReadPassword(0) plan9 := true /* Plan 9 raw mode for rio */ - consctl, err := os.OpenFile("/dev/consctl", os.O_WRONLY, 0200) + err = Rawon() if err != nil { - /* not on Plan 9 */ - fmt.Println("Not running on Plan 9") + fmt.Println("Failed to set rawon") plan9 = false } password := ""; if plan9 { - rawon := []byte("rawon") - _, err = consctl.Write(rawon) + password = GetPass() + + err = Rawoff() if err != nil { - fmt.Println("Failed to set rawon") - } else { - cons, err := os.OpenFile("/dev/cons", os.O_RDWR, 0600) - if err != nil { - fmt.Println("Failed to open /dev/cons") - } - consScan := bufio.NewScanner(cons) - consScan.Scan() - password = consScan.Text() - - rawoff := []byte("rawoff") - _, err = consctl.Write(rawoff) - if err != nil { - fmt.Println("Failed to set rawoff") - } + fmt.Println("Failed to set rawoff") } } else { /* Maybe put linux terminal raw mode in here one day */ diff --git a/helper.go b/helper.go index 5a5a8bf3ea8656e6d8927f2506c1696eef89d3ec..d641864b50c644bf8bf9b4cd936092f50f5dab5c 100644 --- a/helper.go +++ b/helper.go @@ -94,3 +94,46 @@ func MessagePrint(Time, Username, Content string) { func dis(a, b int) float64 { return float64((a - b) * (a - b)) } + +func Rawon() { + consctl, err := os.OpenFile("/dev/consctl", os.O_WRONLY, 0200) + if err != nil { + /* not on Plan 9 */ + fmt.Println("\nNot running on Plan 9") + return err + } + + rawon := []byte("rawon") + _, err = consctl.Write(rawon) + if err != nil { + return err + } + + return nil +} + +func RawOff() { + consctl, err := os.OpenFile("/dev/consctl", os.O_WRONLY, 0200) + if err != nil { + /* not on Plan 9 */ + return err + } + + rawoff := []byte("rawoff") + _, err = consctl.Write(rawoff) + if err != nil { + return err + } + + return nil +} + +func GetPass() { + cons, err := os.OpenFile("/dev/cons", os.O_RDWR, 0600) + if err != nil { + fmt.Println("Failed to open /dev/cons") + } + consScan := bufio.NewScanner(cons) + consScan.Scan() + return consScan.Text() +} diff --git a/main.go b/main.go index 6acec14b18fc50975fbcd1cbdaca51f0f7bc06cd..fc1307505762dcb096b0b8576778f98777254bb3 100644 --- a/main.go +++ b/main.go @@ -76,8 +76,10 @@ func main() { line = ParseForMentions(line) if line != "" { - /*_ ,err :=*/ State.Session.DiscordGo.ChannelMessageSend(State.Channel.ID, line) - //fmt.Print("Error: ", err, "\n") + _ ,err := State.Session.DiscordGo.ChannelMessageSend(State.Channel.ID, line) + if err != nil { + fmt.Print("Error: ", err, "\n") + } } }