mirror of https://github.com/schollz/croc.git
add no prompt option
This commit is contained in:
parent
7513702e9c
commit
4d9455c24b
2
main.go
2
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")
|
||||
|
|
|
@ -31,7 +31,7 @@ type Croc struct {
|
|||
UseEncryption bool
|
||||
UseCompression bool
|
||||
AllowLocalDiscovery bool
|
||||
Yes bool
|
||||
NoRecipientPrompt bool
|
||||
Stdout bool
|
||||
|
||||
// Parameters for file transfer
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue