@@ -304,6 +304,24 @@ int side_length_validator(struct cli_def *cli, const char *name, const char *val
304304 return rc ;
305305}
306306
307+ int check1_validator (struct cli_def * cli , UNUSED (const char * name ), UNUSED (const char * value )) {
308+ char * color ;
309+ char * transparent ;
310+
311+ printf ("check1_validator called \n" );
312+ color = cli_get_optarg_value (cli , "color" , NULL );
313+ transparent = cli_get_optarg_value (cli , "transparent" , NULL );
314+
315+ if (!color && !transparent ) {
316+ cli_error (cli ,"\nMust supply either a color or transparent!" );
317+ return CLI_ERROR ;
318+ } else if (color && !strcmp (color ,"black" ) && transparent ) {
319+ cli_error (cli , "\nCan not have a transparent black object!" );
320+ return CLI_ERROR ;
321+ }
322+ return CLI_OK ;
323+ }
324+
307325void run_child (int x ) {
308326 struct cli_command * c ;
309327 struct cli_def * cli ;
@@ -352,11 +370,14 @@ void run_child(int x) {
352370 "Set transparent flag" , NULL , NULL , NULL );
353371 cli_register_optarg (c , "verbose" , CLI_CMD_OPTIONAL_FLAG | CLI_CMD_OPTION_MULTIPLE , PRIVILEGE_UNPRIVILEGED , MODE_EXEC ,
354372 "Set transparent flag" , NULL , NULL , NULL );
373+ cli_register_optarg (c , "color" , CLI_CMD_OPTIONAL_ARGUMENT , PRIVILEGE_UNPRIVILEGED , MODE_EXEC , "Set color" ,
374+ color_completor , color_validator , NULL );
375+ cli_register_optarg (c , "__check1__" , CLI_CMD_SPOT_CHECK ,PRIVILEGE_UNPRIVILEGED , MODE_EXEC ,
376+ NULL , NULL , check1_validator ,
377+ NULL );
355378 cli_register_optarg (c , "shape" , CLI_CMD_ARGUMENT | CLI_CMD_ALLOW_BUILDMODE , PRIVILEGE_UNPRIVILEGED , MODE_EXEC ,
356379 "Specify shape to calclate perimeter for" , shape_completor , shape_validator ,
357380 shape_transient_eval );
358- cli_register_optarg (c , "color" , CLI_CMD_OPTIONAL_ARGUMENT , PRIVILEGE_UNPRIVILEGED , MODE_EXEC , "Set color" ,
359- color_completor , color_validator , NULL );
360381 cli_register_optarg (c , "side_1" , CLI_CMD_ARGUMENT , PRIVILEGE_UNPRIVILEGED , MODE_POLYGON_TRIANGLE ,
361382 "Specify side 1 length" , NULL , side_length_validator , NULL );
362383 cli_register_optarg (c , "side_1" , CLI_CMD_ARGUMENT , PRIVILEGE_UNPRIVILEGED , MODE_POLYGON_RECTANGLE ,
0 commit comments