@@ -44,70 +44,14 @@ def terminate_child_processes(self) -> None:
4444 except psutil .NoSuchProcess :
4545 pass
4646
47- @staticmethod
48- def _is_option_arg (arg : str ) -> bool :
49- return arg .startswith ("-" )
50-
51- @classmethod
52- def _collect_flag_values (cls , argv : list [str ], flag : str ) -> str | None :
53- try :
54- idx = argv .index (flag )
55- except ValueError :
56- return None
57-
58- if idx + 1 >= len (argv ):
59- return None
60-
61- value_parts : list [str ] = []
62- for arg in argv [idx + 1 :]:
63- if cls ._is_option_arg (arg ):
64- break
65- if arg :
66- value_parts .append (arg )
67-
68- if not value_parts :
69- return None
70-
71- return " " .join (value_parts ).strip () or None
72-
73- @classmethod
74- def _resolve_webui_dir_arg (cls , argv : list [str ]) -> str | None :
75- return cls ._collect_flag_values (argv , "--webui-dir" )
76-
77- def _build_frozen_reboot_args (self ) -> list [str ]:
78- argv = list (sys .argv [1 :])
79- webui_dir = self ._resolve_webui_dir_arg (argv )
80- if not webui_dir :
81- webui_dir = os .environ .get ("ASTRBOT_WEBUI_DIR" )
82-
83- if webui_dir :
84- return ["--webui-dir" , webui_dir ]
85- return []
86-
87- @staticmethod
88- def _reset_frozen_bootloader_environment () -> None :
89- if not getattr (sys , "frozen" , False ):
90- return
91- for key in list (os .environ .keys ()):
92- if key .startswith ("_PYI_" ):
93- os .environ .pop (key , None )
94-
9547 def _build_reboot_argv (self , executable : str ) -> list [str ]:
9648 if os .environ .get ("ASTRBOT_CLI" ) == "1" :
9749 args = sys .argv [1 :]
9850 return [executable , "-m" , "astrbot.cli.__main__" , * args ]
99- if getattr (sys , "frozen" , False ):
100- args = self ._build_frozen_reboot_args ()
101- return [executable , * args ]
10251 return [executable , * sys .argv ]
10352
10453 @staticmethod
10554 def _exec_reboot (executable : str , argv : list [str ]) -> None :
106- if os .name == "nt" and getattr (sys , "frozen" , False ):
107- quoted_executable = f'"{ executable } "' if " " in executable else executable
108- quoted_args = [f'"{ arg } "' if " " in arg else arg for arg in argv [1 :]]
109- os .execl (executable , quoted_executable , * quoted_args )
110- return
11155 os .execv (executable , argv )
11256
11357 def _reboot (self , delay : int = 3 ) -> None :
@@ -120,7 +64,6 @@ def _reboot(self, delay: int = 3) -> None:
12064 executable = sys .executable
12165
12266 try :
123- self ._reset_frozen_bootloader_environment ()
12467 reboot_argv = self ._build_reboot_argv (executable )
12568 self ._exec_reboot (executable , reboot_argv )
12669 except Exception as e :
0 commit comments