-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.py
91 lines (73 loc) · 2.54 KB
/
build.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
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
from subprocess import call
call("mkdir -p archive/current/", shell=True)
# Turn these into an input
module_name = "HierarchicalClustering"
path_to_manifest = "manifest"
# reading the old version:
def get_version(line):
idx = line[::-1].find(":") # Find the last occurrence of ":"
return line[-idx:].strip("\n"), idx # Return all the values after the last occurrence of ":"
def read_manifest_version(file_name):
manifest = open(file_name)
siguiente = True
version = '99.99'
while siguiente:
line = manifest.readline()
if line[:4] == "LSID":
version, _ = get_version(line)
siguiente = False
return version
old_version = read_manifest_version(path_to_manifest)
# For now update only the minor version
version_vector = old_version.split(".")
version_vector[1] = str(int(version_vector[1])+1)
current_version = ".".join(version_vector)
print("Old version is", old_version)
print("Updated version is", current_version)
# update the manifest version
def update_manifest_version(file_name,old_version, new_version):
call(" ".join(["cp", file_name, "temp"]), shell=True)
old_manifest = open("temp", 'r')
new_manifest = open(file_name, 'w')
for line in old_manifest.readlines():
if line[:4] == "LSID":
_, idx = get_version(line)
# line = line[:idx] + new_version
line = line.replace(old_version+"\n", new_version+"\n")
new_manifest.write(line)
new_manifest.close()
return
update_manifest_version(path_to_manifest, old_version, current_version)
path_to_archive = "archive/"+module_name+"."+current_version+".zip"
path_to_current = "archive/current/"+module_name+"."+current_version+".zip"
# path_to_src = "src"
what_to_zip = "src/manifest src/HierarchicalClustering.py src/hc_functions.py src/test_HC.py src/command_line.py " \
"src/doc.html"
# Saving to the archive:
print("Zipping to archive")
# call(["cd "+path_to_src, "ls", " ".join(["zip", ".."+path_to_archive, what_to_zip])], shell=True)
call(" ".join(["zip -j", path_to_archive, what_to_zip]), shell=True)
# call("cd ..", shell=True)
# Saving to the current:
call("rm -r archive/current/", shell=True)
call("mkdir archive/current/", shell=True)
call(" ".join(["cp", path_to_archive, path_to_current]), shell=True)
'''
Probably need to call something like this:
import os
script = """
echo $0
ls -l
echo done
"""
os.system("bash -c '%s'" % script)
OOOOOR
import subprocess
script = """
echo $0
ls -l
echo done
"""
do a subprocess.call(script, shell=True)
Yeah, that's better.
'''