mirror of
https://github.com/prymitive/karma
synced 2026-05-07 03:26:52 +00:00
57 lines
1.5 KiB
Python
Executable File
57 lines
1.5 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
|
|
import json
|
|
import os
|
|
import sys
|
|
import urllib2
|
|
|
|
|
|
def downloadFile(workdir, path, uri, token):
|
|
req = urllib2.Request(uri)
|
|
req.add_header('Authorization', 'token %s' % token)
|
|
try:
|
|
response = urllib2.urlopen(req)
|
|
except Exception as e:
|
|
print("Request to '%s' failed: %s" % (uri, e))
|
|
else:
|
|
with open(os.path.join(workdir, path), "wb") as local_file:
|
|
local_file.write(response.read())
|
|
|
|
|
|
def getGist(workdir, gist_id, token):
|
|
api = 'api.github.com'
|
|
uri = 'https://{api}/gists/{gist_id}'.format(api=api, gist_id=gist_id)
|
|
|
|
req = urllib2.Request(uri)
|
|
req.add_header('Authorization', 'token %s' % token)
|
|
try:
|
|
response = urllib2.urlopen(req)
|
|
except Exception as e:
|
|
print("Request to '%s' failed: %s" % (uri, e))
|
|
else:
|
|
data = json.load(response)
|
|
for filename, meta in data['files'].items():
|
|
print('Fetching {filename} from {uri}'.format(
|
|
filename=filename, uri=meta['raw_url']))
|
|
downloadFile(workdir, filename, meta['raw_url'], token)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
if len(sys.argv) != 3:
|
|
print('Usage: GIST_ID WORKDIR')
|
|
sys.exit(1)
|
|
|
|
token = os.getenv('GITHUB_TOKEN')
|
|
if not token:
|
|
print('GITHUB_TOKEN env variable is missing')
|
|
sys.exit(1)
|
|
|
|
gist_id = sys.argv[1]
|
|
workdir = sys.argv[2]
|
|
if not gist_id or not workdir:
|
|
print('Usage: GIST_ID WORKDIR')
|
|
sys.exit(1)
|
|
|
|
getGist(workdir, gist_id, token)
|