By Vasudev Ram
Download image attribution
Hi readers,
Here is another in my recently started series of posts about D (DLang / the D language).
This is a simple download utility written in D, to download a file from a URL.
It makes use of a high-level function called download (sic) in the std.net.curl module, so the code is very simple. But it only handles basic cases; e.g. no authentication or HTTPS support.
The line:
That line prints a bit more information about the exception than the release version does.
You can also read a few posts about downloading using Python tools.
- Enjoy.
- Vasudev Ram - Online Python training and consulting Signup to hear about my new courses and products. My Python posts Subscribe to my blog by email My ActiveState recipes
Download image attribution
Hi readers,
Here is another in my recently started series of posts about D (DLang / the D language).
This is a simple download utility written in D, to download a file from a URL.
It makes use of a high-level function called download (sic) in the std.net.curl module, so the code is very simple. But it only handles basic cases; e.g. no authentication or HTTPS support.
/*A makefile to build it in both debug and release versions:
File: download.d
Version: 0.1
Purpose: A simple program to download a file from a given URL
to a given local file. Only handles simple cases. Does not
support authentication, HTTPS or other features.
Author: Vasudev Ram - https://vasudevram.github.io
Copyright 2016 Vasudev Ram
*/
import std.stdio;
import std.net.curl;
void usage(string program)
{
writeln("Usage: ", program, " URL file");
writeln("Downloads the contents of URL to file.");
}
int main(string[] args)
{
if (args.length != 3)
{
usage(args[0]);
return 1;
}
try
{
writeln("Trying to download (URL) ", args[1], " to (file) ", args[2]);
download(args[1], args[2]);
writeln("Item at URL ", args[1], " downloaded to file ", args[2]);
return 0;
}
catch(Exception e)
{
writeln("Error: ", e.msg);
debug(1) writeln("Exception info:\n", e);
return 1;
}
}
$ type MakefileTo build the release version:
release: download.d
dmd -ofdownload.exe download.d
debug: download.d
dmd -debug -ofdownload.exe download.d
make releaseTo build the debug version:
make debugA test run: download the current HN home page:
download news.ycombinator.com nyc.htmlOutput is in nyc.html; see screenshot below:
The line:
debug(1) writeln("Exception info:\n", e);
gets compiled into the binary / EXE only if you build the debug version.That line prints a bit more information about the exception than the release version does.
You can also read a few posts about downloading using Python tools.
- Enjoy.
- Vasudev Ram - Online Python training and consulting Signup to hear about my new courses and products. My Python posts Subscribe to my blog by email My ActiveState recipes

