yanglint FEATURE interactive context implemented flags
Refs #1706
diff --git a/tools/lint/cmd_clear.c b/tools/lint/cmd_clear.c
index ccf6bdd..798095f 100644
--- a/tools/lint/cmd_clear.c
+++ b/tools/lint/cmd_clear.c
@@ -28,9 +28,13 @@
void
cmd_clear_help(void)
{
- printf("Usage: clear [--yang-library]\n"
+ printf("Usage: clear [-i] [-y]\n"
" Replace the current context with an empty one, searchpaths\n"
- " are not kept.\n"
+ " are not kept.\n\n"
+ " -i, --makeimplemented\n"
+ " Make the imported modules \"referenced\" from any loaded\n"
+ " module also implemented. If specified a second time, all the\n"
+ " modules are set implemented.\n"
" -y, --yang-library\n"
" Load and implement internal \"ietf-yang-library\" YANG module.\n"
" Note that this module includes definitions of mandatory state\n"
@@ -48,6 +52,7 @@
char **argv = NULL;
int opt, opt_index;
struct option options[] = {
+ {"makeimplemented", no_argument, NULL, 'i'},
{"yang-library", no_argument, NULL, 'y'},
{"help", no_argument, NULL, 'h'},
{NULL, 0, NULL, 0}
@@ -59,8 +64,16 @@
goto cleanup;
}
- while ((opt = getopt_long(argc, argv, "yh", options, &opt_index)) != -1) {
+ while ((opt = getopt_long(argc, argv, "iyh", options, &opt_index)) != -1) {
switch (opt) {
+ case 'i':
+ if (options_ctx & LY_CTX_REF_IMPLEMENTED) {
+ options_ctx &= ~LY_CTX_REF_IMPLEMENTED;
+ options_ctx |= LY_CTX_ALL_IMPLEMENTED;
+ } else {
+ options_ctx |= LY_CTX_REF_IMPLEMENTED;
+ }
+ break;
case 'y':
options_ctx &= ~LY_CTX_NO_YANGLIBRARY;
break;