forked from jacek-marchwicki/JavaWebsocketClient
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupload.py
More file actions
59 lines (45 loc) · 1.77 KB
/
upload.py
File metadata and controls
59 lines (45 loc) · 1.77 KB
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/env python
#
# Copyright 2014 Jacek Marchwicki <[email protected]>
import argparse
import sys
import urlparse
import urllib2
import json
import subprocess
def main():
parser = argparse.ArgumentParser(description='Manage task.')
parser.add_argument('--token', dest='token', required=True, nargs="?",
type=str, help='token')
parser.add_argument('--build-name', dest='build_name', required=True, nargs="?",
type=str, help='build name')
parser.add_argument('--base-url', dest='base_url', nargs="?",
type=str, help='base url', default="https://auto-close.appspot.com/")
parser.add_argument('files', metavar='FILES', type=str, nargs="+",
help='files to upload')
args = parser.parse_args()
response = execute(urlparse.urljoin(args.base_url, "build"), {
"token": args.token,
"build_name": args.build_name
})
url = response["upload"]["url"]
download_url = response["download"]
command = "tar jcvf - %s | curl --request PUT --upload-file - \"%s\"" % (" ".join(args.files), url)
subprocess.check_call(command, shell=True)
print "Serving artifacts at: %s" % download_url
handler = urllib2.HTTPSHandler(debuglevel=0)
opener = urllib2.build_opener(handler)
def execute(base_url, data):
headers = {
"Content-Type": "application/json"
}
request = urllib2.Request(base_url, json.dumps(data), headers)
try:
response = opener.open(request)
return json.loads(response.read())
except urllib2.HTTPError as e:
print >> sys.stderr, "Response from server: %s" % e.read()
raise e
if __name__ == '__main__':
main()