Skip to content

Commit e8bbb75

Browse files
authored
Promote special CLI rules to flags (ros2#495)
* Promote special CLI rules to flags. Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com> * Improve argument parsing logging and error messages. Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com> * Remove some short form CLI flags. Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
1 parent 40a276b commit e8bbb75

File tree

4 files changed

+235
-183
lines changed

4 files changed

+235
-183
lines changed

rcl/include/rcl/arguments.h

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,16 @@ typedef struct rcl_arguments_t
3939
#define RCL_ROS_ARGS_EXPLICIT_END_TOKEN "--"
4040
#define RCL_PARAM_FLAG "--param"
4141
#define RCL_SHORT_PARAM_FLAG "-p"
42+
#define RCL_PARAM_FILE_FLAG "--params-file"
4243
#define RCL_REMAP_FLAG "--remap"
4344
#define RCL_SHORT_REMAP_FLAG "-r"
45+
#define RCL_LOG_LEVEL_FLAG "--log-level"
46+
#define RCL_EXTERNAL_LOG_CONFIG_FLAG "--log-config-file"
47+
// To be prefixed with --enable- or --disable-
48+
#define RCL_LOG_STDOUT_FLAG_SUFFIX "stdout-logs"
49+
#define RCL_LOG_ROSOUT_FLAG_SUFFIX "rosout-logs"
50+
#define RCL_LOG_EXT_LIB_FLAG_SUFFIX "external-lib-logs"
4451

45-
#define RCL_LOG_LEVEL_ARG_RULE "__log_level:="
46-
#define RCL_EXTERNAL_LOG_CONFIG_ARG_RULE "__log_config_file:="
47-
#define RCL_LOG_DISABLE_STDOUT_ARG_RULE "__log_disable_stdout:="
48-
#define RCL_LOG_DISABLE_ROSOUT_ARG_RULE "__log_disable_rosout:="
49-
#define RCL_LOG_DISABLE_EXT_LIB_ARG_RULE "__log_disable_external_lib:="
50-
#define RCL_PARAM_FILE_ARG_RULE "__params:="
5152

5253
/// Return a rcl_arguments_t struct with members initialized to `NULL`.
5354
RCL_PUBLIC
@@ -75,7 +76,7 @@ rcl_get_zero_initialized_arguments(void);
7576
* Parameter override rule parsing is supported via `-p/--param` flags e.g. `--param name:=value`
7677
* or `-p name:=value`.
7778
*
78-
* The default log level will be parsed as `__log_level:=level`, where `level` is a name
79+
* The default log level will be parsed as `--log-level level`, where `level` is a name
7980
* representing one of the log levels in the `RCUTILS_LOG_SEVERITY` enum, e.g. `info`, `debug`,
8081
* `warn`, not case sensitive.
8182
* If multiple of these rules are found, the last one parsed will be used.

rcl/include/rcl/types.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ typedef rmw_ret_t rcl_ret_t;
101101
/// Argument is not a valid parameter rule
102102
#define RCL_RET_INVALID_PARAM_RULE 1010
103103
/// Argument is not a valid log level rule
104-
#define RCL_RET_INVALID_LOG_LEVEL_RULE 1020
104+
#define RCL_RET_INVALID_LOG_LEVEL 1020
105105

106106
// rcl event specific ret codes in 20XX
107107
/// Invalid rcl_event_t given return code.

0 commit comments

Comments
 (0)