mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 17:20:30 +08:00
additional cmd options
This commit is contained in:
parent
70fb46d428
commit
3e289262f8
@ -516,7 +516,10 @@ def _get_config_scheme() -> Dict:
|
||||
},
|
||||
|
||||
"commands": {
|
||||
"pre_start_cmd": Option(["/bin/true", "pre-start"], type=valid_command),
|
||||
"pre_start_cmd": Option(["/bin/true", "pre-start"], type=valid_command),
|
||||
"pre_start_cmd_remove": Option([], type=valid_options),
|
||||
"pre_start_cmd_append": Option([], type=valid_options),
|
||||
|
||||
"post_start_cmd": Option([
|
||||
"/usr/bin/systemd-run",
|
||||
"--unit=kvmd-otgnet-dnsmasq",
|
||||
@ -532,12 +535,20 @@ def _get_config_scheme() -> Dict:
|
||||
"--dhcp-option=6",
|
||||
"--keep-in-foreground",
|
||||
], type=valid_command),
|
||||
"pre_stop_cmd": Option([
|
||||
"post_start_cmd_remove": Option([], type=valid_options),
|
||||
"post_start_cmd_append": Option([], type=valid_options),
|
||||
|
||||
"pre_stop_cmd": Option([
|
||||
"/usr/bin/systemctl",
|
||||
"stop",
|
||||
"kvmd-otgnet-dnsmasq",
|
||||
], type=valid_command),
|
||||
"post_stop_cmd": Option(["/bin/true", "post-stop"], type=valid_command),
|
||||
"pre_stop_cmd_remove": Option([], type=valid_options),
|
||||
"pre_stop_cmd_append": Option([], type=valid_options),
|
||||
|
||||
"post_stop_cmd": Option(["/bin/true", "post-stop"], type=valid_command),
|
||||
"post_stop_cmd_remove": Option([], type=valid_options),
|
||||
"post_stop_cmd_append": Option([], type=valid_options),
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
@ -179,11 +179,7 @@ class Streamer: # pylint: disable=too-many-instance-attributes
|
||||
|
||||
self.__process_name_prefix = process_name_prefix
|
||||
|
||||
self.__cmd = [
|
||||
cmd[0], # Executable
|
||||
*filter((lambda item: item not in cmd_remove), cmd[1:]),
|
||||
*cmd_append,
|
||||
]
|
||||
self.__cmd = tools.build_cmd(cmd, cmd_remove, cmd_append)
|
||||
|
||||
self.__params = _StreamerParams(**params_kwargs)
|
||||
|
||||
|
||||
@ -35,6 +35,7 @@ from ...logging import get_logger
|
||||
from ...yamlconf import Section
|
||||
|
||||
from ... import env
|
||||
from ... import tools
|
||||
from ... import aioproc
|
||||
|
||||
from .. import init
|
||||
@ -74,10 +75,17 @@ class _Service: # pylint: disable=too-many-instance-attributes
|
||||
self.__forward_iface: str = config.otgnet.firewall.forward_iface
|
||||
self.__iptables_cmd: List[str] = config.otgnet.firewall.iptables_cmd
|
||||
|
||||
self.__pre_start_cmd: List[str] = config.otgnet.commands.pre_start_cmd
|
||||
self.__post_start_cmd: List[str] = config.otgnet.commands.post_start_cmd
|
||||
self.__pre_stop_cmd: List[str] = config.otgnet.commands.pre_stop_cmd
|
||||
self.__post_stop_cmd: List[str] = config.otgnet.commands.post_stop_cmd
|
||||
def build_cmd(key: str) -> List[str]:
|
||||
return tools.build_cmd(
|
||||
getattr(config.otgnet.commands, key),
|
||||
getattr(config.otgnet.commands, f"{key}_remove"),
|
||||
getattr(config.otgnet.commands, f"{key}_append"),
|
||||
)
|
||||
|
||||
self.__pre_start_cmd: List[str] = build_cmd("pre_start_cmd")
|
||||
self.__post_start_cmd: List[str] = build_cmd("post_start_cmd")
|
||||
self.__pre_stop_cmd: List[str] = build_cmd("pre_stop_cmd")
|
||||
self.__post_stop_cmd: List[str] = build_cmd("post_stop_cmd")
|
||||
|
||||
self.__gadget: str = config.otg.gadget
|
||||
self.__driver: str = config.otg.devices.ethernet.driver
|
||||
|
||||
@ -73,3 +73,13 @@ def clear_queue(q: multiprocessing.queues.Queue) -> None: # pylint: disable=inv
|
||||
q.get_nowait()
|
||||
except queue.Empty:
|
||||
break
|
||||
|
||||
|
||||
# =====
|
||||
def build_cmd(cmd: List[str], cmd_remove: List[str], cmd_append: List[str]) -> List[str]:
|
||||
assert len(cmd) >= 1, cmd
|
||||
return [
|
||||
cmd[0], # Executable
|
||||
*filter((lambda item: item not in cmd_remove), cmd[1:]),
|
||||
*cmd_append,
|
||||
]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user