-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathbuild.py
78 lines (53 loc) · 2.33 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
import subprocess
import platform
import os
import argparse
def parse_args():
""" Parse the commandline arguments
"""
parser = argparse.ArgumentParser(description='Helper script to build dakanji')
# --- LINUX --------------------------------------------------
parser.add_argument('--linux' , action='store_true', help='Build portable linux executable')
parser.add_argument('--flatpak', action='store_true', help='Build flatpak (requires --linux)')
parser.add_argument('--snap' , action='store_true', help='Build snap')
parser.add_argument('--la' , action='store_true', help='Build portable, flatpak, snap')
args = parser.parse_args()
return args
def build_linux():
""" Builds a portable linux application and a zipped version
"""
subprocess.run("flutter build linux --release", shell=True)
if(os.path.isfile("./build/linux/x64/release/bundle/DaKanji.zip")):
os.remove("./build/linux/x64/release/bundle/DaKanji.zip")
subprocess.run("zip -r ./build/linux/x64/release/bundle/DaKanji.zip ./build/linux/x64/release/bundle/", shell=True)
def build_snap():
""" Builds a snap
"""
subprocess.run("snapcraft")
def build_flatpak():
""" Builds a flatpak on linux.
Updates the file "flatpak/com.DaAppLab.DaKanji.metainfo.xml"
"""
# update description
with open("flatpak/com.DaAppLab.DaKanji.metainfo.xml", mode="r") as f:
current_version = f.read()
# create repo
subprocess.run("flatpak-builder --force-clean build-dir flatpak/com.DaAppLab.DaKanji.json --repo=repo")
# creat
subprocess.run("flatpak build-bundle repo com.DaAppLab.DaKanji.flatpak com.DaAppLab.DaKanji")
if __name__ == "__main__":
args = parse_args()
if(platform.system() == "Linux"):
print(f"Building on Linux")
if(args.linux or args.flatpak or args.la):
print("Starting building portable linux application")
build_linux()
print("Finished building portable linux application\n")
if(args.snap or args.la):
print("Starting building snap")
build_snap()
print("Finished building snap\n")
if(args.flatpak or args.la):
print("Starting building flatpak")
build_flatpak()
print("Finished building flatpak\n")