From 4d9455c24b10ab8581c9fd600a0526dc71249500 Mon Sep 17 00:00:00 2001 From: Zack Scholl Date: Sat, 22 Sep 2018 06:32:44 -0700 Subject: [PATCH] add no prompt option --- main.go | 2 +- src/croc/croc.go | 2 +- src/croc/sending.go | 2 +- src/recipient/recipient.go | 19 +++++++++++-------- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/main.go b/main.go index 8c62edfd..24fa5aba 100644 --- a/main.go +++ b/main.go @@ -80,7 +80,7 @@ func main() { cr = croc.Init(c.GlobalBool("debug")) cr.AllowLocalDiscovery = true cr.WebsocketAddress = c.GlobalString("relay") - cr.Yes = c.GlobalBool("yes") + cr.NoRecipientPrompt = c.GlobalBool("yes") cr.Stdout = c.GlobalBool("stdout") cr.LocalOnly = c.GlobalBool("local") cr.NoLocal = c.GlobalBool("no-local") diff --git a/src/croc/croc.go b/src/croc/croc.go index b3371e8e..bbd7027c 100644 --- a/src/croc/croc.go +++ b/src/croc/croc.go @@ -31,7 +31,7 @@ type Croc struct { UseEncryption bool UseCompression bool AllowLocalDiscovery bool - Yes bool + NoRecipientPrompt bool Stdout bool // Parameters for file transfer diff --git a/src/croc/sending.go b/src/croc/sending.go index 2323ea29..b580571f 100644 --- a/src/croc/sending.go +++ b/src/croc/sending.go @@ -127,7 +127,7 @@ func (c *Croc) sendReceive(websocketAddress, fname, codephrase string, isSender // start peerdiscovery relay server go sender.Send(done, sock, fname, codephrase) } else { - go recipient.Receive(done, sock, codephrase) + go recipient.Receive(done, sock, codephrase, c.NoRecipientPrompt) } for { diff --git a/src/recipient/recipient.go b/src/recipient/recipient.go index bd7e6f20..8ea95e45 100644 --- a/src/recipient/recipient.go +++ b/src/recipient/recipient.go @@ -28,9 +28,9 @@ import ( var DebugLevel string // Receive is the async operation to receive a file -func Receive(done chan struct{}, c *websocket.Conn, codephrase string) { +func Receive(done chan struct{}, c *websocket.Conn, codephrase string, noPrompt bool) { logger.SetLogLevel(DebugLevel) - err := receive(c, codephrase) + err := receive(c, codephrase, noPrompt) if err != nil { if strings.HasPrefix(err.Error(), "websocket: close 100") { return @@ -40,7 +40,7 @@ func Receive(done chan struct{}, c *websocket.Conn, codephrase string) { done <- struct{}{} } -func receive(c *websocket.Conn, codephrase string) (err error) { +func receive(c *websocket.Conn, codephrase string, noPrompt bool) (err error) { var fstats models.FileStats var sessionKey []byte var transferTime time.Duration @@ -111,15 +111,18 @@ func receive(c *websocket.Conn, codephrase string) (err error) { if fstats.IsDir { fileOrFolder = "folder" } - if "y" != utils.GetInput(fmt.Sprintf("%s %s (%s) into: %s\nok? (y/N): ", + fmt.Fprintf(os.Stderr, "%s %s (%s) into: %s\n", overwritingOrReceiving, fileOrFolder, humanize.Bytes(uint64(fstats.Size)), fstats.Name, - )) { - fmt.Fprintf(os.Stderr, "cancelling request") - c.WriteMessage(websocket.BinaryMessage, []byte("no")) - return nil + ) + if !noPrompt { + if "y" != utils.GetInput("ok? (y/N): ") { + fmt.Fprintf(os.Stderr, "cancelling request") + c.WriteMessage(websocket.BinaryMessage, []byte("no")) + return nil + } } // await file