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.nim23
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/nimgrab.nim b/tools/nimgrab.nim
new file mode 100644
index 000000000..c86159739
--- /dev/null
+++ b/tools/nimgrab.nim
@@ -0,0 +1,23 @@
+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>"
+else:
+  syncDownload(os.paramStr(1), os.paramStr(2))