diff options
Diffstat (limited to 'src/sg-cl.opt')
-rw-r--r-- | src/sg-cl.opt | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/sg-cl.opt b/src/sg-cl.opt index 265aa4b..45c5bf4 100644 --- a/src/sg-cl.opt +++ b/src/sg-cl.opt @@ -15,7 +15,7 @@ along with Eclat. If not, see <http://www.gnu.org/licenses/>. */ ECLAT_CL_BEGIN([<modify ingress rules of a security group>], - [<GROUPARG>]) + [<[GROUPID-OR-NAME]>]) OPTION(add,A,, [<add rules>]) @@ -114,17 +114,20 @@ ECLAT_CL_PARSER(parse_options, [<int argc, char *argv[]>],[< int idx; GETOPT(argc, argv, idx, exit(EX_USAGE)) - if (!command) - die(EX_USAGE, "either --list or --add or --delete must be given"); - if (list_option && - (rule_n > 1 || group_list || source_list || from_port || to_port)) - die(EX_USAGE, "conflicting options"); - argc -= idx; argv += idx; - if (argc != 1) + + if (!command) + die(EX_USAGE, "either --list or --add or --delete must be given"); + if (list_option) { + if (rule_n > 1 || group_list || source_list || + from_port || to_port) + die(EX_USAGE, "conflicting options"); + if (argc > 1) + die(EX_USAGE, "bad number of arguments"); + } else if (argc != 1) die(EX_USAGE, "bad number of arguments"); - translate_ids(1, argv, rt[dest_n].map); + translate_ids(argc, argv, rt[dest_n].map); eclat_query_add_param(env->query, "Action", command); if (list_option) |