forked from jar-analyzer/jar-analyzer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.py
80 lines (64 loc) · 3.65 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
import os
import shutil
import sys
import subprocess
VERSION = "2.4-beta"
PROJECT = "PROJECT: https://github.com/jar-analyzer/jar-analyzer"
def copy_jar_files(source_dir, target_dir):
key_word = "-jar-with-dependencies.jar"
os.makedirs(target_dir, exist_ok=True)
for root, dirs, files in os.walk(source_dir):
for file in files:
if file.endswith(key_word):
source_path = os.path.join(root, file)
final_name = file.split(key_word)[0] + ".jar"
target_path = os.path.join(target_dir, final_name)
shutil.copy(source_path, target_path)
def copy_file(source_path, destination_path):
try:
shutil.copy2(source_path, destination_path)
except Exception as e:
print("[!] error: ", str(e))
def replace_version(file_path, old, new):
with open(file_path, 'r') as file:
content = file.read()
updated_content = content.replace(old, new)
with open(file_path, 'w') as file:
file.write(updated_content)
if __name__ == '__main__':
java_target_directory = "target"
target_directory = "release"
print("[*] make new release dir: {}".format(VERSION))
release_win_system_dir = "jar-analyzer-{}-windows-system".format(VERSION)
release_win_embed_dir = "jar-analyzer-{}-windows-embed".format(VERSION)
release_linux_dir = "jar-analyzer-{}-linux".format(VERSION)
print("[*] make dirs")
subprocess.run("mkdir {}".format(release_win_system_dir), shell=True, cwd=target_directory)
subprocess.run("mkdir {}\\{}".format(release_win_system_dir, "lib"), shell=True, cwd=target_directory)
subprocess.run("mkdir {}".format(release_win_embed_dir), shell=True, cwd=target_directory)
subprocess.run("mkdir {}\\{}".format(release_win_embed_dir, "lib"), shell=True, cwd=target_directory)
subprocess.run("mkdir {}".format(release_linux_dir), shell=True, cwd=target_directory)
subprocess.run("mkdir {}\\{}".format(release_linux_dir, "lib"), shell=True, cwd=target_directory)
print("[*] copy file")
copy_jar_files(java_target_directory, "{}/{}/{}".format(target_directory, release_win_system_dir, "lib"))
copy_jar_files(java_target_directory, "{}/{}/{}".format(target_directory, release_win_embed_dir, "lib"))
copy_jar_files(java_target_directory, "{}/{}/{}".format(target_directory, release_linux_dir, "lib"))
print("[*] build start scripts")
copy_file("build\\start-system.bat", "release\\" + release_win_system_dir + "\\start.bat")
copy_file("build\\start-embed.bat", "release\\" + release_win_embed_dir + "\\start.bat")
copy_file("build\\start-system.sh", "release\\" + release_linux_dir + "\\start.sh")
print("[*] build version")
subprocess.run("echo {} > {}".format(VERSION, "VERSION.txt"), shell=True,
cwd="{}/{}".format(target_directory, release_win_system_dir))
subprocess.run("echo {} > {}".format(VERSION, "VERSION.txt"), shell=True,
cwd="{}/{}".format(target_directory, release_win_embed_dir))
subprocess.run("echo {} > {}".format(VERSION, "VERSION.txt"), shell=True,
cwd="{}/{}".format(target_directory, release_linux_dir))
print("[*] build about")
subprocess.run("echo {} > {}".format(PROJECT, "ABOUT.txt"), shell=True,
cwd="{}/{}".format(target_directory, release_win_system_dir))
subprocess.run("echo {} > {}".format(PROJECT, "ABOUT.txt"), shell=True,
cwd="{}/{}".format(target_directory, release_win_embed_dir))
subprocess.run("echo {} > {}".format(PROJECT, "ABOUT.txt"), shell=True,
cwd="{}/{}".format(target_directory, release_linux_dir))
print("[*] build finish")