diff options
Diffstat (limited to 'tools/nimgrab.nim')
-rw-r--r-- | tools/nimgrab.nim | 48 |
1 files changed, 18 insertions, 30 deletions
diff --git a/tools/nimgrab.nim b/tools/nimgrab.nim index ee5eced1e..c86159739 100644 --- a/tools/nimgrab.nim +++ b/tools/nimgrab.nim @@ -1,33 +1,21 @@ - - -when defined(windows): - import os, urldownloader - - proc syncDownload(url, file: string) = - proc progress(status: DownloadStatus, progress: uint, total: uint, - message: string) {.gcsafe.} = - echo "Downloading " & url - let t = total.BiggestInt - if t != 0: - echo clamp(int(progress.BiggestInt*100 div t), 0, 100), "%" - else: - echo "0%" - - downloadToFile(url, file, {optUseCache}, progress) - echo "100%" - -else: - import os, asyncdispatch, httpclient - - proc syncDownload(url, file: string) = - var client = newHttpClient() - proc onProgressChanged(total, progress, speed: BiggestInt) = - echo "Downloading " & url & " " & $(speed div 1000) & "kb/s" - echo clamp(int(progress*100 div total), 0, 100), "%" - - client.onProgressChanged = onProgressChanged - client.downloadFile(url, file) - echo "100%" +import std/[os, httpclient] + +proc syncDownload(url, file: string) = + let client = newHttpClient() + proc onProgressChanged(total, progress, speed: BiggestInt) = + var message = "Downloading " + message.add url + message.add ' ' + message.addInt speed div 1000 + message.add "kb/s\n" + message.add $clamp(int(progress * 100 div total), 0, 100) + message.add '%' + echo message + + client.onProgressChanged = onProgressChanged + client.downloadFile(url, file) + client.close() + echo "100%" if os.paramCount() != 2: quit "Usage: nimgrab <url> <file>" |