Skip to content

Commit 1a5ef47

Browse files
committed
Fix files transfer; closes #2
1 parent 08483fb commit 1a5ef47

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

main.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@ func main() {
5252
}
5353
if err != nil {
5454
fmt.Println(Colored("✘ Unable to open %s", ColorRed, arg))
55-
continue
55+
return
5656
}
5757
if stat.IsDir() {
5858
if dirFiles, err := scanDir(argAbs); err == nil {
5959
files = append(files, dirFiles...)
6060
}
6161
if err != nil {
6262
fmt.Println(Colored("✘ Unable to scan dir %s", ColorRed, arg))
63-
continue
63+
return
6464
}
6565
} else {
6666
e := fileEntity{
@@ -80,7 +80,9 @@ func main() {
8080
if _, err := conn.Connect(address); err == nil {
8181
defer safeDisconnect(conn)
8282
fmt.Println(Colored("⇄ Connected", ColorCyan))
83-
processFiles(conn, files, dir)
83+
proto := NewProto(conn)
84+
sendFiles(proto, files)
85+
receiveFiles(proto, dir)
8486
fmt.Println(Colored("⇵ Transfer done", ColorCyan))
8587
} else {
8688
fmt.Println(Colored("✘ Unable to connect to %s", ColorRed, address))
@@ -90,7 +92,9 @@ func main() {
9092
if _, err := conn.Listen(address); err == nil {
9193
defer safeDisconnect(conn)
9294
fmt.Println(Colored("⇄ Connected", ColorCyan))
93-
processFiles(conn, files, dir)
95+
proto := NewProto(conn)
96+
receiveFiles(proto, dir)
97+
sendFiles(proto, files)
9498
fmt.Println(Colored("⇵ Transfer done", ColorCyan))
9599
} else {
96100
fmt.Println(Colored("✘ Unable to listen on %s", ColorRed, address))
@@ -100,8 +104,7 @@ func main() {
100104
}
101105
}
102106

103-
func processFiles(conn *Connection, files []fileEntity, dir string) {
104-
proto := NewProto(conn)
107+
func sendFiles(proto *Proto, files []fileEntity) {
105108
for _, file := range files {
106109
var progress *TtyProgress
107110
err := proto.SendFile(file.baseDir, file.filePath, func(relDir string, size int64) {
@@ -119,6 +122,9 @@ func processFiles(conn *Connection, files []fileEntity, dir string) {
119122
}
120123
}
121124
_ = proto.SendDone()
125+
}
126+
127+
func receiveFiles(proto *Proto, dir string) {
122128
for {
123129
var progress *TtyProgress
124130
hasMore, err := proto.ReadFile(dir, func(relDir string, name string, size int64) {

0 commit comments

Comments
 (0)