summary refs log tree commit diff stats
path: root/tools/nimgrab.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tools/nimgrab.nim')
-rw-r--r--tools/nimgrab.nim48
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>"