aboutsummaryrefslogtreecommitdiffstats
path: root/src/actionparser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/actionparser.c')
-rw-r--r--src/actionparser.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/actionparser.c b/src/actionparser.c
index 529876e..c4bfbc5 100644
--- a/src/actionparser.c
+++ b/src/actionparser.c
@@ -24,6 +24,7 @@ const char* const strEDIT[] = {"3", "edit", "e", "-e"};
const char* const strLIST[] = {"5", "list", "ls", "l", "-l", "-ls"};
const char* const strSEARCH[] = {"4", "search", "grep", "s", "-s"};
const char* const strHELP[] = {"5", "help", "h", "-?", "-h", "--help"};
+const char* const strRESTORE[] = {"3", "restore","r", "-r"};
const char* const strConfDir[] = {"2", "config", "-c"};
const char* const strVersion[] = {"2", "version", "--version"};
const char* const strVerbose1[] = {"2", "--verbose", "-v"};
@@ -160,6 +161,18 @@ int parse_HELP(UserOpt *opt) {
return 0;
}
+int parse_RESTORE(UserOpt *opt) {
+ /* Restore expects 1 to 2 arguments */
+ if (optNum < pos + 1
+ || optNum > pos + 2) {
+ opt->err = PERR_RESTORE_WRONG;
+ return -1;
+ }
+
+ int arg_num = optNum - pos;
+ fill_args_list(arg_num, opt);
+ return 0;
+}
int parse_vals(UserOpt *opt) {
switch (opt->action) {
@@ -354,6 +367,9 @@ void print_parser_error(UserOpt *opt) {
break;
case PERR_HELP_WRONG:
sprintf(errStr, "Get help for a ck action.\nUsage: %s action", names);
+ break;
+ case PERR_RESTORE_WRONG:
+ sprintf(errStr, "Restore links of programs.\nUsage: %s {all} | {-p programName}", names);
}
HELP("%s", errStr);
}
@@ -373,9 +389,11 @@ void print_parser_help() {
get_possible_action_strings(names, CKA_LIST);
ckhelp("List configs: \t%s", names);
get_possible_action_strings(names, CKA_SEARCH);
- ckhelp("Search: \t%s", names);
+ ckhelp("Search configs: \t%s", names);
+ get_possible_action_strings(names, CKA_RESTORE);
+ ckhelp("Restore links: \t%s", names);
get_possible_action_strings(names, CKA_HELP);
- ckhelp("Actions Help: \t%s", names);
+ ckhelp("Help: \t%s", names);
report_help();
}