diff --git a/build.py b/build.py index 42dc8d6de..f65b3a4aa 100755 --- a/build.py +++ b/build.py @@ -24,18 +24,21 @@ else: flutter_build_dir_2 = f'flutter/{flutter_build_dir}' skip_cargo = False + def get_arch() -> str: custom_arch = os.environ.get("ARCH") if custom_arch is None: return "amd64" return custom_arch + def system2(cmd): err = os.system(cmd) if err != 0: print(f"Error occurred when executing: {cmd}. Exiting.") sys.exit(-1) + def get_version(): with open("Cargo.toml", encoding="utf-8") as fh: for line in fh: @@ -196,9 +199,9 @@ def download_extract_features(features, res_dir): for (feat, feat_info) in features.items(): includes = feat_info['include'] if 'include' in feat_info and feat_info['include'] else [] - includes = [ re.compile(p) for p in includes ] + includes = [re.compile(p) for p in includes] excludes = feat_info['exclude'] if 'exclude' in feat_info and feat_info['exclude'] else [] - excludes = [ re.compile(p) for p in excludes ] + excludes = [re.compile(p) for p in excludes] print(f'{feat} download begin') download_filename = feat_info['zip_url'].split('/')[-1] @@ -350,6 +353,7 @@ def build_flutter_deb(version, features): os.rename('rustdesk.deb', '../rustdesk-%s.deb' % version) os.chdir("..") + def build_deb_from_folder(version, binary_folder): os.chdir('flutter') system2('mkdir -p tmpdeb/usr/bin/') @@ -388,6 +392,7 @@ def build_deb_from_folder(version, binary_folder): os.rename('rustdesk.deb', '../rustdesk-%s.deb' % version) os.chdir("..") + def build_flutter_dmg(version, features): if not skip_cargo: # set minimum osx build target, now is 10.14, which is the same as the flutter xcode project @@ -577,7 +582,7 @@ def main(): else: print('Not signed') else: - # buid deb package + # build deb package system2( 'mv target/release/bundle/deb/rustdesk*.deb ./rustdesk.deb') system2('dpkg-deb -R rustdesk.deb tmpdeb') diff --git a/libs/portable/generate.py b/libs/portable/generate.py index 640f2ae6a..61d8c78f7 100644 --- a/libs/portable/generate.py +++ b/libs/portable/generate.py @@ -1,4 +1,3 @@ -from ast import parse import os import optparse from hashlib import md5 @@ -47,7 +46,7 @@ def write_metadata(md5_table: dict, output_folder: str, exe: str): f.write((len(path)).to_bytes(length=length_count, byteorder='big')) f.write(path) # data length & compressed data - f.write((data_length).to_bytes( + f.write(data_length.to_bytes( length=length_count, byteorder='big')) f.write(compressed_data) # md5 code @@ -65,6 +64,8 @@ def build_portable(output_folder: str): # Linux: python3 generate.py -f ../rustdesk-portable-packer/test -o . -e ./test/main.py # Windows: python3 .\generate.py -f ..\rustdesk\flutter\build\windows\runner\Debug\ -o . -e ..\rustdesk\flutter\build\windows\runner\Debug\rustdesk.exe + + if __name__ == '__main__': parser = optparse.OptionParser() parser.add_option("-f", "--folder", dest="folder", diff --git a/res/lang.py b/res/lang.py index 74492818a..4655d2cbe 100644 --- a/res/lang.py +++ b/res/lang.py @@ -5,20 +5,22 @@ import glob import sys import csv + def get_lang(lang): - out = {} - for ln in open('./src/lang/%s.rs'%lang, encoding='utf8'): - ln = ln.strip() - if ln.startswith('("'): - k, v = line_split(ln) - out[k] = v - return out + out = {} + for ln in open('./src/lang/%s.rs' % lang, encoding='utf8'): + ln = ln.strip() + if ln.startswith('("'): + k, v = line_split(ln) + out[k] = v + return out + def line_split(line): toks = line.split('", "') if len(toks) != 2: print(line) - assert(0) + assert 0 # Replace fixed position. # Because toks[1] may be v") or v"), k = toks[0][toks[0].find('"') + 1:] @@ -27,62 +29,62 @@ def line_split(line): def main(): - if len(sys.argv) == 1: - expand() - elif sys.argv[1] == '1': - to_csv() - else: - to_rs(sys.argv[1]) + if len(sys.argv) == 1: + expand() + elif sys.argv[1] == '1': + to_csv() + else: + to_rs(sys.argv[1]) def expand(): - for fn in glob.glob('./src/lang/*.rs'): - lang = os.path.basename(fn)[:-3] - if lang in ['en','template']: continue - print(lang) - dict = get_lang(lang) - fw = open("./src/lang/%s.rs"%lang, "wt", encoding='utf8') - for line in open('./src/lang/template.rs', encoding='utf8'): - line_strip = line.strip() - if line_strip.startswith('("'): - k, v = line_split(line_strip) - if k in dict: - # embraced with " to avoid empty v - line = line.replace('"%s"'%v, '"%s"'%dict[k]) - else: - line = line.replace(v, "") - fw.write(line) - else: - fw.write(line) - fw.close() + for fn in glob.glob('./src/lang/*.rs'): + lang = os.path.basename(fn)[:-3] + if lang in ['en', 'template']: continue + print(lang) + dict = get_lang(lang) + fw = open("./src/lang/%s.rs" % lang, "wt", encoding='utf8') + for line in open('./src/lang/template.rs', encoding='utf8'): + line_strip = line.strip() + if line_strip.startswith('("'): + k, v = line_split(line_strip) + if k in dict: + # embraced with " to avoid empty v + line = line.replace('"%s"' % v, '"%s"' % dict[k]) + else: + line = line.replace(v, "") + fw.write(line) + else: + fw.write(line) + fw.close() def to_csv(): - for fn in glob.glob('./src/lang/*.rs'): - lang = os.path.basename(fn)[:-3] - csvfile = open('./src/lang/%s.csv'%lang, "wt", encoding='utf8') - csvwriter = csv.writer(csvfile) - for line in open(fn, encoding='utf8'): - line_strip = line.strip() - if line_strip.startswith('("'): - k, v = line_split(line_strip) - csvwriter.writerow([k, v]) - csvfile.close() + for fn in glob.glob('./src/lang/*.rs'): + lang = os.path.basename(fn)[:-3] + csvfile = open('./src/lang/%s.csv' % lang, "wt", encoding='utf8') + csvwriter = csv.writer(csvfile) + for line in open(fn, encoding='utf8'): + line_strip = line.strip() + if line_strip.startswith('("'): + k, v = line_split(line_strip) + csvwriter.writerow([k, v]) + csvfile.close() def to_rs(lang): - csvfile = open('%s.csv'%lang, "rt", encoding='utf8') - fw = open("./src/lang/%s.rs"%lang, "wt", encoding='utf8') - fw.write('''lazy_static::lazy_static! { + csvfile = open('%s.csv' % lang, "rt", encoding='utf8') + fw = open("./src/lang/%s.rs" % lang, "wt", encoding='utf8') + fw.write('''lazy_static::lazy_static! { pub static ref T: std::collections::HashMap<&'static str, &'static str> = [ ''') - for row in csv.reader(csvfile): - fw.write(' ("%s", "%s"),\n'%(row[0].replace('"', '\"'), row[1].replace('"', '\"'))) - fw.write(''' ].iter().cloned().collect(); + for row in csv.reader(csvfile): + fw.write(' ("%s", "%s"),\n' % (row[0].replace('"', '\"'), row[1].replace('"', '\"'))) + fw.write(''' ].iter().cloned().collect(); } ''') - fw.close() + fw.close() main()