-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgithubscript.py
More file actions
117 lines (99 loc) · 3.43 KB
/
githubscript.py
File metadata and controls
117 lines (99 loc) · 3.43 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import os
import github
from storage import *
import env
import sys
def authenticateRepo(repo, token):
command = (
'curl -H "Authorization: token '
+ token
+ '" --data \'{"name":"'
+ repo
+ "\"}' https://api.github.com/user/repos"
)
os.system(command)
def getservice(repo, user, token):
g = github.Github(token)
query = user + "/" + repo
print(query)
try:
return g.get_repo(query)
except:
print('Could not get the repo.')
authenticateRepo(repo, token)
import time
time.sleep(60)
print('sleeping for 60 seconds')
return g.get_repo(query)
def writefile(service, file, content):
try:
servicer = service.get_contents(file, ref="master")
return service.update_file(servicer.path, "--", content, servicer.sha, branch="master")
except:
try:
return service.create_file(file, "--", content, branch="master")
except:
print('error')
def deletefile(service, file):
servicer = service.get_contents(file, ref="master")
service.delete_file(servicer.path, "delete", servicer.sha, branch="master")
def main(key = 'brooklyn', file = 'index.html', single=None, files = None):
dict = {
'studentcircles': ['studentcircles', 'kdog3682', env.githubtoken],
'cwf': ['CWF', 'kdog3682', env.githubtoken],
'kdog3682': ['kdog3682.github.io', 'kdog3682', env.githubtoken],
'maylynn': ['maylynnml.github.io', 'maylynnml', env.maylynntoken],
'brooklyn': ['brooklynlearning.github.io', 'brooklynlearning', env.bklyntoken],
}
aliasmap = {
'ml': 'maylynn',
'kdog': 'kdog3682',
'me': 'kdog3682',
'self': 'kdog3682',
'bklyn': 'brooklyn',
'b': 'brooklyn',
'bayridge': 'bayridgelearningcenter',
'sc': 'studentcircles',
}
if len(sys.argv) >= 2:
key = sys.argv[1]
if len(sys.argv) >= 3:
file = sys.argv[2]
service = getservice(*dict.get(key, dict.get(aliasmap.get(key))))
if single:
for item in single.split(' '):
print(writefile(service, item, read(item) + '\n\n' + logStatement(item)))
elif files:
for item in files:
print(writefile(service, item, read(item) + '\n\n' + logStatement(item)))
else:
generateGithubUpload(service, file)
def check(*args):
print('checking parameters')
print(args)
#input('Click done to finish')
#raise Exception('Pausing')
def getFileDependencies(s):
r = '<(?:script|link).*?(?:src|href)=[\'\"]?(.*?)[\'\"]? */?>'
filtration = lambda x: not test('http|\.com', x)
dependencies = filtered(re.findall(r, s), filtration)
valid = every(dependencies, isfile)
if valid:
return dependencies
else:
print(dependencies)
raise Exception('invalid file dependencies')
def generateGithubUpload(service, file):
print('generating github upload for file:', file)
s = read(file)
store = {'index.html': s}
writefile(service, 'index.html', s)
for file in getFileDependencies(s):
result = writefile(service, file, read(file))
print(result)
print('DONE WITH GITHUB UPLOAD. SUCCESS!')
if __name__ == '__main__':
#print(getFileDependencies(read('index.html')))
#main(single='helpers.js index.html')
#input('Click done to finish')
main(key='cwf', files=['githubscript.py'])