Instead, a new action, 'v' for printing the policy (and/or module) version in batch mode is added. Signed-off-by: Masatake YAMATO <yamato@xxxxxxxxxx> --- checkpolicy/test/dismod.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/checkpolicy/test/dismod.c b/checkpolicy/test/dismod.c index 515fc9a5..fa729ef2 100644 --- a/checkpolicy/test/dismod.c +++ b/checkpolicy/test/dismod.c @@ -91,6 +91,7 @@ static struct command { {CMD|NOOPT, 'l', "Link in a module"}, {CMD, 'u', "Display the unknown handling setting"}, {CMD, 'F', "Display filename_trans rules"}, + {CMD, 'v', "display the version of policy and/or module"}, {HEADER, 0, ""}, {CMD|NOOPT, 'f', "set output file"}, {CMD|NOOPT, 'm', "display menu"}, @@ -899,6 +900,19 @@ static int menu(void) return 0; } +static void print_version_info(policydb_t * p, FILE * fp) +{ + if (p->policy_type == POLICY_BASE) { + fprintf(fp, "Binary base policy file loaded.\n"); + } else { + fprintf(fp, "Binary policy module file loaded.\n"); + fprintf(fp, "Module name: %s\n", p->name); + fprintf(fp, "Module version: %s\n", p->version); + } + + fprintf(fp, "Policy version: %d\n\n", p->policyvers); +} + int main(int argc, char **argv) { char *ops = NULL; @@ -952,17 +966,10 @@ int main(int argc, char **argv) exit(1); } - if (policydb.policy_type == POLICY_BASE) { - printf("Binary base policy file loaded.\n"); - } else { - printf("Binary policy module file loaded.\n"); - printf("Module name: %s\n", policydb.name); - printf("Module version: %s\n", policydb.version); - } - - printf("Policy version: %d\n\n", policydb.policyvers); - if (!ops) + if (!ops) { + print_version_info(&policydb, stdout); menu(); + } for (;;) { if (ops) { puts(""); @@ -1069,6 +1076,9 @@ int main(int argc, char **argv) case 'l': link_module(&policydb, out_fp); break; + case 'v': + print_version_info(&policydb, out_fp); + break; case 'q': policydb_destroy(&policydb); exit(0); -- 2.40.1