mirror of
https://github.com/SELinuxProject/selinux
synced 2025-01-11 07:59:26 +00:00
policycoreutils/semodule: Allow enabling/disabling multiple modules at once
Unify behaviour for all module actions. The same behaviour is already present for -i/-u/-r/-e switches. Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1545218 Signed-off-by: Vit Mojzis <vmojzis@redhat.com>
This commit is contained in:
parent
a0c4e64238
commit
0d1fad884a
@ -311,28 +311,29 @@ static void parse_command_line(int argc, char **argv)
|
||||
}
|
||||
|
||||
if (optind < argc) {
|
||||
int mode;
|
||||
int mode = commands ? (int) commands[num_commands - 1].mode : -1;
|
||||
/* if -i/u/r/E was the last command treat any remaining
|
||||
* arguments as args. Will allow 'semodule -i *.pp' to
|
||||
* work as expected.
|
||||
*/
|
||||
|
||||
if (commands && commands[num_commands - 1].mode == INSTALL_M) {
|
||||
mode = INSTALL_M;
|
||||
} else if (commands && commands[num_commands - 1].mode == REMOVE_M) {
|
||||
mode = REMOVE_M;
|
||||
} else if (commands && commands[num_commands - 1].mode == EXTRACT_M) {
|
||||
mode = EXTRACT_M;
|
||||
} else {
|
||||
fprintf(stderr, "unknown additional arguments:\n");
|
||||
while (optind < argc)
|
||||
fprintf(stderr, " %s", argv[optind++]);
|
||||
fprintf(stderr, "\n\n");
|
||||
usage(argv[0]);
|
||||
exit(1);
|
||||
switch (mode) {
|
||||
case INSTALL_M:
|
||||
case REMOVE_M:
|
||||
case EXTRACT_M:
|
||||
case ENABLE_M:
|
||||
case DISABLE_M:
|
||||
while (optind < argc)
|
||||
set_mode(mode, argv[optind++]);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "unknown additional arguments:\n");
|
||||
while (optind < argc)
|
||||
fprintf(stderr, " %s", argv[optind++]);
|
||||
fprintf(stderr, "\n\n");
|
||||
usage(argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
while (optind < argc)
|
||||
set_mode(mode, argv[optind++]);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user