Browse Source

Create type for android file, re-order FAIL check

master
Wesley Kerfoot 5 years ago
parent
commit
226b96f092
  1. 28
      adb.nim

28
adb.nim

@ -6,6 +6,11 @@ type FileStat = ref object of RootObj
androidFileSize : uint32 androidFileSize : uint32
androidFileModified : Time androidFileModified : Time
type AndroidFile = ref object of RootObj
androidFileName : string
androidFileStat : FileStat
androidFile : string
proc recvExactly(socket : Socket, length : int) : string = proc recvExactly(socket : Socket, length : int) : string =
var buf = "" var buf = ""
while (buf.len != length): while (buf.len != length):
@ -80,11 +85,6 @@ proc recvFile(filename : string) : Option[string] =
var buf = "" var buf = ""
while (status != "DONE"): while (status != "DONE"):
if status == "FAIL":
# Return early if we failed
socket.close()
return none(string)
recvResult = socket.recvExactly(8) # 64 kb + 8 bytes recvResult = socket.recvExactly(8) # 64 kb + 8 bytes
status = recvResult[0..3] status = recvResult[0..3]
@ -93,6 +93,11 @@ proc recvFile(filename : string) : Option[string] =
if (fileLen == 0 or status == "DONE"): if (fileLen == 0 or status == "DONE"):
break break
if status == "FAIL":
# Return early if we failed
socket.close()
return none(string)
recvBody = "" recvBody = ""
assert(status == "DATA") assert(status == "DATA")
@ -131,11 +136,14 @@ proc statFile(filename : string) : FileStat =
androidFileSize: fileSize, androidFileSize: fileSize,
androidFileModified: fileCreated) androidFileModified: fileCreated)
proc adbPull(filename : string) : string = proc adbPull(filename : string) : AndroidFile =
stderr.write filename.len let stat = filename.statFile
stderr.write filename.statFile.repr let fileBlob = filename.recvFile.get("")
AndroidFile(androidFileName: filename,
androidFileStat: stat,
androidFile: fileBlob)
return filename.recvFile.get
proc sendAdb(payload : string) : string = proc sendAdb(payload : string) : string =
var socket = adbConnect() var socket = adbConnect()
@ -169,7 +177,7 @@ discard execCmd("adb start-server")
#else: #else:
#echo devices.get() #echo devices.get()
stdout.write adbPull("/storage/7AFD-17E3/muzak/German Cake Rave-yMvDi_lXiQc.opus") stdout.write adbPull("/etc/hosts").repr
#discard rebootPhone() #discard rebootPhone()

Loading…
Cancel
Save