/* -*-c-*-
*
- * $Id: keyutil.c,v 1.1 1999/09/03 08:41:12 mdw Exp $
+ * $Id: keyutil.c,v 1.3 1999/11/02 15:23:24 mdw Exp $
*
* Simple key manager program
*
/*----- Revision history --------------------------------------------------*
*
* $Log: keyutil.c,v $
+ * Revision 1.3 1999/11/02 15:23:24 mdw
+ * Fix newlines in keyring list.
+ *
+ * Revision 1.2 1999/10/15 21:05:28 mdw
+ * In `key list', show timezone for local times, and support `-u' option
+ * for UTC output.
+ *
* Revision 1.1 1999/09/03 08:41:12 mdw
* Initial import.
*
enum {
f_bogus = 1,
f_newline = 2,
- f_attr = 4
+ f_attr = 4,
+ f_utc = 8
};
/* --- Parse subcommand options --- */
static struct option opt[] = {
{ "quiet", 0, 0, 'q' },
{ "verbose", 0, 0, 'v' },
+ { "utc", 0, 0, 'u' },
{ 0, 0, 0, 0 }
};
- int i = mdwopt(argc, argv, "qv", opt, 0, 0, 0);
+ int i = mdwopt(argc, argv, "+uqv", opt, 0, 0, 0);
if (i < 0)
break;
switch (i) {
+ case 'u':
+ fl |= f_utc;
+ break;
case 'q':
if (v)
v--;
}
if (fl & f_bogus || optind != argc)
- die(EXIT_FAILURE, "Usage: list [-qv]");
+ die(EXIT_FAILURE, "Usage: list [-uqv]");
/* --- Open the key file --- */
/* --- Write the header --- */
- tfmt = v ? "%Y-%m-%d %H:%M:%S" : "%Y-%m-%d";
+ if (!v)
+ tfmt = "%Y-%m-%d";
+ else if (fl & f_utc)
+ tfmt = "%Y-%m-%d %H:%M:%S UTC";
+ else
+ tfmt = "%Y-%m-%d %H:%M:%S %Z";
/* --- Now iterate through the keys --- */
if (k->exp == KEXP_FOREVER)
strcpy(ebuf, "forever");
else {
- tm = localtime(&k->exp);
+ tm = (fl & f_utc) ? gmtime(&k->exp) : localtime(&k->exp);
strftime(ebuf, sizeof(ebuf), tfmt, tm);
}
}
fputc('\n', stdout);
}
+ fl |= f_newline;
}
}
{ "delete", cmd_delete, "delete KEYID..." },
{ "setattr", cmd_setattr, "setattr KEYID ATTR..." },
{ "comment", cmd_comment, "comment KEYID [COMMENT]" },
- { "list", cmd_list, "list [-qv]" },
+ { "list", cmd_list, "list [-uqv]" },
{ "tidy", cmd_tidy, "tidy" },
{ "extract", cmd_extract, "extract FILE KEYID..." },
{ "merge", cmd_merge, "merge FILE" },