mirror of
https://github.com/schollz/croc.git
synced 2025-10-11 05:11:06 +02:00
add no prompt option
This commit is contained in:
parent
7513702e9c
commit
4d9455c24b
4 changed files with 14 additions and 11 deletions
2
main.go
2
main.go
|
@ -80,7 +80,7 @@ func main() {
|
||||||
cr = croc.Init(c.GlobalBool("debug"))
|
cr = croc.Init(c.GlobalBool("debug"))
|
||||||
cr.AllowLocalDiscovery = true
|
cr.AllowLocalDiscovery = true
|
||||||
cr.WebsocketAddress = c.GlobalString("relay")
|
cr.WebsocketAddress = c.GlobalString("relay")
|
||||||
cr.Yes = c.GlobalBool("yes")
|
cr.NoRecipientPrompt = c.GlobalBool("yes")
|
||||||
cr.Stdout = c.GlobalBool("stdout")
|
cr.Stdout = c.GlobalBool("stdout")
|
||||||
cr.LocalOnly = c.GlobalBool("local")
|
cr.LocalOnly = c.GlobalBool("local")
|
||||||
cr.NoLocal = c.GlobalBool("no-local")
|
cr.NoLocal = c.GlobalBool("no-local")
|
||||||
|
|
|
@ -31,7 +31,7 @@ type Croc struct {
|
||||||
UseEncryption bool
|
UseEncryption bool
|
||||||
UseCompression bool
|
UseCompression bool
|
||||||
AllowLocalDiscovery bool
|
AllowLocalDiscovery bool
|
||||||
Yes bool
|
NoRecipientPrompt bool
|
||||||
Stdout bool
|
Stdout bool
|
||||||
|
|
||||||
// Parameters for file transfer
|
// Parameters for file transfer
|
||||||
|
|
|
@ -127,7 +127,7 @@ func (c *Croc) sendReceive(websocketAddress, fname, codephrase string, isSender
|
||||||
// start peerdiscovery relay server
|
// start peerdiscovery relay server
|
||||||
go sender.Send(done, sock, fname, codephrase)
|
go sender.Send(done, sock, fname, codephrase)
|
||||||
} else {
|
} else {
|
||||||
go recipient.Receive(done, sock, codephrase)
|
go recipient.Receive(done, sock, codephrase, c.NoRecipientPrompt)
|
||||||
}
|
}
|
||||||
|
|
||||||
for {
|
for {
|
||||||
|
|
|
@ -28,9 +28,9 @@ import (
|
||||||
var DebugLevel string
|
var DebugLevel string
|
||||||
|
|
||||||
// Receive is the async operation to receive a file
|
// 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)
|
logger.SetLogLevel(DebugLevel)
|
||||||
err := receive(c, codephrase)
|
err := receive(c, codephrase, noPrompt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if strings.HasPrefix(err.Error(), "websocket: close 100") {
|
if strings.HasPrefix(err.Error(), "websocket: close 100") {
|
||||||
return
|
return
|
||||||
|
@ -40,7 +40,7 @@ func Receive(done chan struct{}, c *websocket.Conn, codephrase string) {
|
||||||
done <- struct{}{}
|
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 fstats models.FileStats
|
||||||
var sessionKey []byte
|
var sessionKey []byte
|
||||||
var transferTime time.Duration
|
var transferTime time.Duration
|
||||||
|
@ -111,15 +111,18 @@ func receive(c *websocket.Conn, codephrase string) (err error) {
|
||||||
if fstats.IsDir {
|
if fstats.IsDir {
|
||||||
fileOrFolder = "folder"
|
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,
|
overwritingOrReceiving,
|
||||||
fileOrFolder,
|
fileOrFolder,
|
||||||
humanize.Bytes(uint64(fstats.Size)),
|
humanize.Bytes(uint64(fstats.Size)),
|
||||||
fstats.Name,
|
fstats.Name,
|
||||||
)) {
|
)
|
||||||
fmt.Fprintf(os.Stderr, "cancelling request")
|
if !noPrompt {
|
||||||
c.WriteMessage(websocket.BinaryMessage, []byte("no"))
|
if "y" != utils.GetInput("ok? (y/N): ") {
|
||||||
return nil
|
fmt.Fprintf(os.Stderr, "cancelling request")
|
||||||
|
c.WriteMessage(websocket.BinaryMessage, []byte("no"))
|
||||||
|
return nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// await file
|
// await file
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue