add no prompt option

This commit is contained in:
Zack Scholl 2018-09-22 06:32:44 -07:00
parent 7513702e9c
commit 4d9455c24b
4 changed files with 14 additions and 11 deletions

View File

@ -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")

View File

@ -31,7 +31,7 @@ type Croc struct {
UseEncryption bool
UseCompression bool
AllowLocalDiscovery bool
Yes bool
NoRecipientPrompt bool
Stdout bool
// Parameters for file transfer

View File

@ -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 {

View File

@ -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