diff --git a/src/win/Makefile b/src/win/Makefile index f74cdfa0..cac6290b 100644 --- a/src/win/Makefile +++ b/src/win/Makefile @@ -1,5 +1,8 @@ - +windows: + go get github.com/schollz/croc/v6@win + go build -v -ldflags -H=windowsgui -o croc.exe + linux: go get github.com/schollz/croc/v6@win go build -v -o croc @@ -9,6 +12,4 @@ linuxprereqs: sudo apt-get install libglib2.0-dev sudo apt-get install libgtk-3-dev -windows: - go get github.com/schollz/croc/v6@win - go build -v -ldflags -H=windowsgui -o croc.exe + diff --git a/src/win/go.mod b/src/win/go.mod index 7dad8fb4..cd6825b9 100644 --- a/src/win/go.mod +++ b/src/win/go.mod @@ -5,6 +5,6 @@ go 1.13 require ( fyne.io/fyne v1.1.1 github.com/gotk3/gotk3 v0.0.0-20190930052053-f6994e9a1558 // indirect - github.com/schollz/croc/v6 v6.1.6-0.20191009155022-6cdf8cecfc0a + github.com/schollz/croc/v6 v6.1.6-0.20191009214340-6f1c49623059 github.com/sqweek/dialog v0.0.0-20190728103509-6254ed5b0d3c ) diff --git a/src/win/go.sum b/src/win/go.sum index f39fdb8a..ac793b5a 100644 --- a/src/win/go.sum +++ b/src/win/go.sum @@ -18,6 +18,7 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -62,6 +63,8 @@ github.com/schollz/croc/v6 v6.1.6-0.20191009003006-e2198faa24d0 h1:UH27BGqcbGDIo github.com/schollz/croc/v6 v6.1.6-0.20191009003006-e2198faa24d0/go.mod h1:Wd/ZHrsZlxT21hRqbxaEWl8ww1uCHGR6xACaZQQV/wk= github.com/schollz/croc/v6 v6.1.6-0.20191009155022-6cdf8cecfc0a h1:yVOlp4bFxCFSLMQZq4aTmAe4xJx6uXTVV5J4rBxZiwY= github.com/schollz/croc/v6 v6.1.6-0.20191009155022-6cdf8cecfc0a/go.mod h1:Wd/ZHrsZlxT21hRqbxaEWl8ww1uCHGR6xACaZQQV/wk= +github.com/schollz/croc/v6 v6.1.6-0.20191009214340-6f1c49623059 h1:zjVHFer4w5VAXCNGEhvD7zSBQPWafHZj797siKoRZPM= +github.com/schollz/croc/v6 v6.1.6-0.20191009214340-6f1c49623059/go.mod h1:Wd/ZHrsZlxT21hRqbxaEWl8ww1uCHGR6xACaZQQV/wk= github.com/schollz/logger v1.0.1 h1:BuBAU+euqphM0Ny9qFVScl4RSxatis4nCHIkOxO2cUU= github.com/schollz/logger v1.0.1/go.mod h1:P6F4/dGMGcx8wh+kG1zrNEd4vnNpEBY/mwEMd/vn6AM= github.com/schollz/mnemonicode v1.0.1 h1:LiH5hwADZwjwnfXsaD4xgnMyTAtaKHN+e5AyjRU6WSU= @@ -93,6 +96,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.3.1-0.20190311161405-34c6fa2dc709 h1:Ko2LQMrRU+Oy/+EDBwX7eZ2jp3C47eDBB8EIhKTun+I= github.com/stretchr/testify v1.3.1-0.20190311161405-34c6fa2dc709/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/tscholl2/siec v0.0.0-20180721101609-21667da05937 h1:lhssCpSe3TjKcbvUoPzFMuv9oUyZDgI3Cmgolfw2C90= github.com/tscholl2/siec v0.0.0-20180721101609-21667da05937/go.mod h1:KL9+ubr1JZdaKjgAaHr+tCytEncXBa1pR6FjbTsOJnw= @@ -127,4 +131,5 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/tylerb/is.v1 v1.1.2/go.mod h1:9yQB2tyIhZ5oph6Kk5Sq7cJMd9c5Jpa1p3hr9kxzPqo= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/src/win/main.go b/src/win/main.go index 19cdcf2c..546b3145 100644 --- a/src/win/main.go +++ b/src/win/main.go @@ -169,29 +169,75 @@ func main() { } entry.SetPlaceHolder("Enter code phrase") var receiveFileButtion *widget.Button + receiveFolder := "" receiveFileButtion = widget.NewButton("Set directory to save", func() { filename, err := nativedialog.Directory().Title("Now find a dir").Browse() fmt.Println(filename) fmt.Println(err) receiveFileButtion.SetText(filename) + receiveFolder = filename }) receiveScreen := widget.NewVBox( widget.NewLabelWithStyle("Receive a file", fyne.TextAlignCenter, fyne.TextStyle{Bold: true}), receiveFileButtion, entry, widget.NewButton("Receive", func() { - cnf := dialog.NewConfirm("Confirmation", "Accept file ?", confirmCallback, w) - cnf.SetDismissText("Nah") - cnf.SetConfirmText("Oh Yes!") - cnf.Show() - fmt.Println("codePhraseToReceive") + if receiveFolder != "" { + err := os.Chdir(receiveFolder) + if err != nil { + panic(err) + } + } + crocOptions := croc.Options{ + SharedSecret: codePhraseToReceive, + IsSender: false, + Debug: false, + NoPrompt: true, + RelayAddress: models.DEFAULT_RELAY, + Stdout: false, + DisableLocal: true, + RelayPorts: strings.Split("9009,9010,9011,9012,9013", ","), + } + cr, err := croc.New(crocOptions) + if err != nil { + return + } + finished := false + transfering := false + var prog *dialog.ProgressDialog + startTime := time.Now() + go func() { + for { + if finished || cr == nil { + // mbPerSecond := float64(finfo.Size()) / time.Since(startTime).Seconds() + // currentInfo.SetText(fmt.Sprintf("Finished transfer (%s/s).", utils.ByteCountDecimal(int64(mbPerSecond)))) + prog.Hide() + return + } + if cr.Step1ChannelSecured { + currentInfo.SetText("Channel secured.") + } + if cr.Step4FileTransfer && !transfering { + transfering = true + currentInfo.SetText("Transfering file.") + prog = dialog.NewProgress("Progress", "Transfering", w) + startTime = time.Now() + } + if transfering && cr.Bar != nil { + prog.SetValue(cr.Bar.State().CurrentPercent) + } + time.Sleep(100 * time.Millisecond) + } + }() + err = cr.Receive() + if err != nil { + panic(err) + } + cr = nil + finished = true }), layout.NewSpacer(), currentInfo, - widget.NewHBox( - widget.NewLabel("Progress:"), - progress, - ), ) progress.SetValue(0)