mirror of https://github.com/schollz/croc.git
add recipient finish line
This commit is contained in:
parent
b1aeedb107
commit
cd3a936795
3
main.go
3
main.go
|
@ -141,9 +141,6 @@ func send(c *cli.Context) error {
|
||||||
codePhrase,
|
codePhrase,
|
||||||
)
|
)
|
||||||
err = cr.Send(fname, codePhrase)
|
err = cr.Send(fname, codePhrase)
|
||||||
if err == nil {
|
|
||||||
fmt.Fprintf(os.Stderr, "\nTransfer complete")
|
|
||||||
}
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ func Receive(done chan struct{}, c *websocket.Conn, codephrase string) {
|
||||||
func receive(c *websocket.Conn, codephrase string) (err error) {
|
func receive(c *websocket.Conn, codephrase string) (err error) {
|
||||||
var fstats models.FileStats
|
var fstats models.FileStats
|
||||||
var sessionKey []byte
|
var sessionKey []byte
|
||||||
|
var transferTime time.Duration
|
||||||
|
|
||||||
// start a spinner
|
// start a spinner
|
||||||
spin := spinner.New(spinner.CharSets[9], 100*time.Millisecond)
|
spin := spinner.New(spinner.CharSets[9], 100*time.Millisecond)
|
||||||
|
@ -128,7 +129,7 @@ func receive(c *websocket.Conn, codephrase string) (err error) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
bytesWritten := 0
|
bytesWritten := 0
|
||||||
fmt.Fprintf(os.Stderr, "Receiving...\n")
|
fmt.Fprintf(os.Stderr, "\nReceiving...\n")
|
||||||
bar := progressbar.NewOptions(
|
bar := progressbar.NewOptions(
|
||||||
int(fstats.Size),
|
int(fstats.Size),
|
||||||
progressbar.OptionSetRenderBlankState(true),
|
progressbar.OptionSetRenderBlankState(true),
|
||||||
|
@ -136,6 +137,7 @@ func receive(c *websocket.Conn, codephrase string) (err error) {
|
||||||
progressbar.OptionSetWriter(os.Stderr),
|
progressbar.OptionSetWriter(os.Stderr),
|
||||||
)
|
)
|
||||||
c.WriteMessage(websocket.BinaryMessage, []byte("ready"))
|
c.WriteMessage(websocket.BinaryMessage, []byte("ready"))
|
||||||
|
startTime := time.Now()
|
||||||
for {
|
for {
|
||||||
messageType, message, err := c.ReadMessage()
|
messageType, message, err := c.ReadMessage()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -174,6 +176,7 @@ func receive(c *websocket.Conn, codephrase string) (err error) {
|
||||||
bar.Add(n)
|
bar.Add(n)
|
||||||
} else {
|
} else {
|
||||||
// we are finished
|
// we are finished
|
||||||
|
transferTime = time.Since(startTime)
|
||||||
|
|
||||||
// close file
|
// close file
|
||||||
err = f.Close()
|
err = f.Close()
|
||||||
|
@ -204,6 +207,19 @@ func receive(c *websocket.Conn, codephrase string) (err error) {
|
||||||
} else {
|
} else {
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
|
if err == nil {
|
||||||
|
transferRate := float64(fstats.Size) / 1000000.0 / transferTime.Seconds()
|
||||||
|
transferType := "MB/s"
|
||||||
|
if transferRate < 1 {
|
||||||
|
transferRate = float64(fstats.Size) / 1000.0 / transferTime.Seconds()
|
||||||
|
transferType = "kB/s"
|
||||||
|
}
|
||||||
|
folderOrFile := "file"
|
||||||
|
if fstats.IsDir {
|
||||||
|
folderOrFile = "folder"
|
||||||
|
}
|
||||||
|
fmt.Fprintf(os.Stderr, "\nReceived %s written to %s (%2.1f %s)\n", folderOrFile, fstats.Name, transferRate, transferType)
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
c.WriteMessage(websocket.BinaryMessage, []byte("not"))
|
c.WriteMessage(websocket.BinaryMessage, []byte("not"))
|
||||||
|
|
|
@ -35,9 +35,13 @@ func Send(done chan struct{}, c *websocket.Conn, fname string, codephrase string
|
||||||
err := send(c, fname, codephrase)
|
err := send(c, fname, codephrase)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if strings.HasPrefix(err.Error(), "websocket: close 100") {
|
if strings.HasPrefix(err.Error(), "websocket: close 100") {
|
||||||
return
|
err = nil
|
||||||
|
}
|
||||||
|
if err == nil {
|
||||||
|
fmt.Fprintf(os.Stderr, "Transfer complete")
|
||||||
|
} else {
|
||||||
|
fmt.Fprintf(os.Stderr, err.Error())
|
||||||
}
|
}
|
||||||
log.Error(err)
|
|
||||||
}
|
}
|
||||||
done <- struct{}{}
|
done <- struct{}{}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue