summaryrefslogtreecommitdiff
path: root/cmd/main.ha
blob: 95d1cad3417008fc90908d274fdf2aa8871276d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use fmt;
use os;
use internal::curl;
use memio;
use io;

export fn main() void = {
	if (len(os::args) != 2) {
		fmt::fatalf("USAGE: {} <url>", os::args[0]);
	};
	let resp = curl::newresponse();
	defer curl::closeresponse(resp)!;
	match (curl::get(os::args[1], &resp)) {
	case void =>
		yield;
	case let err: curl::setopterr =>
		fmt::fatalf("setopt returned {} instead of 0", err: int);
	case let err: curl::performerr =>
		fmt::fatalf("perform returned {} instead of 0", err: int);
	case let err: curl::getinfoerr =>
		fmt::fatalf("getinfo returned {} instead of 0", err: int);
	};
	fmt::print(memio::string(&resp.data)!)!;
	fmt::printfln("status: {}, size: {}", resp.status, resp.sz)!;
};