diff --git a/res/msi/Package/Components/RustDesk.wxs b/res/msi/Package/Components/RustDesk.wxs index fa8c402e1..b2049f4e8 100644 --- a/res/msi/Package/Components/RustDesk.wxs +++ b/res/msi/Package/Components/RustDesk.wxs @@ -17,7 +17,7 @@ - + @@ -40,11 +40,11 @@ - + - - + + @@ -54,14 +54,14 @@ - + - + @@ -109,7 +109,7 @@ - + diff --git a/res/msi/Package/Fragments/AddRemoveProperties.wxs b/res/msi/Package/Fragments/AddRemoveProperties.wxs index f93852867..a7139fab2 100644 --- a/res/msi/Package/Fragments/AddRemoveProperties.wxs +++ b/res/msi/Package/Fragments/AddRemoveProperties.wxs @@ -25,6 +25,9 @@ + + + diff --git a/res/msi/preprocess.py b/res/msi/preprocess.py index 02db5bde4..9a6a3bcab 100644 --- a/res/msi/preprocess.py +++ b/res/msi/preprocess.py @@ -64,6 +64,12 @@ def make_parser(): parser.add_argument( "-c", "--custom", action="store_true", help="Is custom client", default=False ) + parser.add_argument( + "--custom-client-props", + type=str, + default="{}", + help='Custom client properties, e.g. \'{"connection-type": "outgoing"}\'', + ) parser.add_argument( "--app-name", type=str, default="RustDesk", help="The app name." ) @@ -385,6 +391,33 @@ def gen_custom_ARPSYSTEMCOMPONENT(args, dist_dir): else: return gen_custom_ARPSYSTEMCOMPONENT_False(args) +def gen_custom_client_properties(args): + try: + props = json.loads(args.custom_client_props) + except json.JSONDecodeError as e: + print(f"Failed to decode custom props: {e}") + return False + + def func(lines, index_start): + indent = g_indent_unit * 3 + + lines_new = [] + + if 'connection-type' in props: + lines_new.append( + f"""{indent}\n""" + ) + + for i, line in enumerate(lines_new): + lines.insert(index_start + i + 1, line) + return lines + + return gen_content_between_tags( + "Package/Fragments/AddRemoveProperties.wxs", + "", + "", + func, + ) def gen_content_between_tags(filename, tag_start, tag_end, func): target_file = Path(sys.argv[0]).parent.joinpath(filename) @@ -506,6 +539,9 @@ if __name__ == "__main__": if not gen_custom_ARPSYSTEMCOMPONENT(args, dist_dir): sys.exit(-1) + if not gen_custom_client_properties(args): + sys.exit(-1) + if not gen_auto_component(app_name, dist_dir): sys.exit(-1)