-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.py
66 lines (58 loc) · 1.8 KB
/
main.py
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
import glob
import file_ops as fo
import os
import md5base36 as gradlemd5
import shutil
import sys
gradle_url='http://services.gradle.org/distributions/gradle-2.4-all.zip'
src_dir='~/.gradle/'
gradle_dist_dir='~/.gradle/wrapper/dists/%s/%s/%s'
def copy_one(src, dst):
shutil.copyfile(src,dst)
def copy_url(url, f):
print url
md5b36 = gradlemd5.get_md5b36(url)
stem, ext = os.path.splitext(f)
dst = fo.get_path(gradle_dist_dir % (stem, md5b36, f))
src = fo.get_path("%s/%s" % (src_dir, f))
parent = os.path.dirname(dst);
if not os.path.exists(parent):
os.makedirs(parent)
print dst
shutil.copyfile(src,dst)
gen_links(parent, url)
def gen_link(src, link_name):
os.chdir(os.path.dirname(src))
if not os.path.exists(link_name):
link_src =os.path.basename(src)
print "%s -> %s" % (link_name, link_src)
os.symlink(link_src, link_name)
def gen_links(parent_dir, url):
links = []
https = url.replace('http://', 'https://')
links.append(gradlemd5.get_md5b36(https))
links.append(gradlemd5.get_md5buu(url, 32))
links.append(gradlemd5.get_md5buu(https, 32))
for l in links:
gen_link(parent_dir, l)
if __name__ == '__main__':
if len(sys.argv) < 2:
help_str='''
%s <zip_dir> <glob_*> copy pattern matched zip files
%s <zip_dir> copy gradle*.zip in <zip_dir>
'''
print help_str % (sys.argv[0], sys.argv[0])
sys.exit(1)
pattern = 'gradle*.zip'
if len(sys.argv) >= 3:
pattern = sys.argv[2]
print(pattern)
if len(sys.argv) >= 2:
src_dir = sys.argv[1]
print(src_dir)
prefix=os.path.dirname(gradle_url)
os.chdir(fo.get_path(src_dir))
ttt = []
for f in glob.glob(pattern):
url='%s/%s' % (prefix,f)
copy_url(url, f)