author | Christian Ebert <blacktrash@gmx.net> |
Fri, 05 Dec 2008 14:09:59 +0100 | |
changeset 516 | 0107b6de1a35 |
parent 515 | 9ea5ac3258b6 |
child 566 | 986012d03ed3 |
permissions | -rwxr-xr-x |
513
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
1 |
#!/usr/bin/env python |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
2 |
|
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
3 |
__doc__ = """This does HTTP get requests given a host:port and path and returns |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
4 |
a subset of the headers plus the body of the result.""" |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
5 |
|
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
6 |
import httplib, sys |
515
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
7 |
|
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
8 |
try: |
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
9 |
import msvcrt, os |
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
10 |
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) |
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
11 |
msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY) |
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
12 |
except ImportError: |
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
13 |
pass |
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
14 |
|
513
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
15 |
headers = [h.lower() for h in sys.argv[3:]] |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
16 |
conn = httplib.HTTPConnection(sys.argv[1]) |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
17 |
conn.request("GET", sys.argv[2]) |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
18 |
response = conn.getresponse() |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
19 |
print response.status, response.reason |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
20 |
for h in headers: |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
21 |
if response.getheader(h, None) is not None: |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
22 |
print "%s: %s" % (h, response.getheader(h)) |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
23 |
print |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
24 |
sys.stdout.write(response.read()) |
514
06b69a53ab0f
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
513
diff
changeset
|
25 |
|
06b69a53ab0f
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
513
diff
changeset
|
26 |
if 200 <= response.status <= 299: |
06b69a53ab0f
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
513
diff
changeset
|
27 |
sys.exit(0) |
06b69a53ab0f
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
513
diff
changeset
|
28 |
sys.exit(1) |