diff --git a/tracetools_launch/tracetools_launch/action.py b/tracetools_launch/tracetools_launch/action.py index 00cfa67..9c8958d 100644 --- a/tracetools_launch/tracetools_launch/action.py +++ b/tracetools_launch/tracetools_launch/action.py @@ -38,6 +38,7 @@ class Trace(Action): self, *, session_name: str, + append_timestamp: bool = False, base_path: str = path.DEFAULT_BASE_PATH, events_ust: List[str] = names.DEFAULT_EVENTS_ROS, events_kernel: List[str] = names.DEFAULT_EVENTS_KERNEL, @@ -47,11 +48,13 @@ class Trace(Action): Constructor. :param session_name: the name of the tracing session + :param append_timestamp: whether to append timestamp to the session name :param base_path: the path to the base directory in which to create the tracing session directory :param events_ust: the list of ROS UST events to enable :param events_kernel: the list of kernel events to enable """ super().__init__(**kwargs) + session_name = path.append_timestamp(session_name) if append_timestamp else session_name self.__session_name = session_name self.__base_path = base_path self.__events_ust = events_ust diff --git a/tracetools_trace/tracetools_trace/tools/args.py b/tracetools_trace/tracetools_trace/tools/args.py index c2a96ca..ea3629c 100644 --- a/tracetools_trace/tracetools_trace/tools/args.py +++ b/tracetools_trace/tracetools_trace/tools/args.py @@ -42,7 +42,7 @@ def parse_args(): def add_arguments(parser): parser.add_argument( '--session-name', '-s', dest='session_name', - default=f'session-{time.strftime("%Y%m%d%H%M%S")}', + default=path.append_timestamp('session'), help='the name of the tracing session (default: session-YYYYMMDDHHMMSS)') parser.add_argument( '--path', '-p', dest='path', diff --git a/tracetools_trace/tracetools_trace/tools/path.py b/tracetools_trace/tracetools_trace/tools/path.py index 5c830f0..9baf45b 100644 --- a/tracetools_trace/tracetools_trace/tools/path.py +++ b/tracetools_trace/tracetools_trace/tools/path.py @@ -13,11 +13,24 @@ # limitations under the License. import os +import time DEFAULT_BASE_PATH = '~/.ros/tracing/' +def append_timestamp( + session_name_base: str, +) -> str: + """ + Append timestamp to base session name. + + :param session_name_base: the base name of the tracing session + :return: the session name with timestamp + """ + return session_name_base + '-' + time.strftime("%Y%m%d%H%M%S") + + def get_full_session_path( session_name: str, base_path: str = DEFAULT_BASE_PATH