diff --git a/src/python/jw/pkg/lib/App.py b/src/python/jw/pkg/lib/App.py index 9832bff2..329ec074 100644 --- a/src/python/jw/pkg/lib/App.py +++ b/src/python/jw/pkg/lib/App.py @@ -52,6 +52,7 @@ class App: # export from .Cmd import Cmd self.__args: Namespace|None = None + self.__cmdline: str|None = None self.__default_log_flags: str = os.getenv('JW_DEFAULT_LOG_FLAGS', default='stderr,position,prio,color') self.__default_log_level: str|int|None = os.getenv('JW_DEFAULT_LOG_LEVEL', default=NOTICE) self.__default_log_file: str|None = os.getenv('JW_DEFAULT_LOG_FILE', default=None) @@ -137,6 +138,14 @@ class App: # export async def _run(self, args: argparse.Namespace) -> None: return await self.args.func(args) + @property + def cmdline(self) -> str: + if self.__cmdline is None: + with open('/proc/self/cmdline', 'rb') as f: + raw = f.read().split(b'\0')[:-1] + self.__cmdline = ' '.join(shlex.quote(arg.decode()) for arg in raw) + return self.__cmdline + @property def args(self) -> argparse.Namespace: return self.__args