mirror of
https://github.com/systemd/systemd.git
synced 2025-01-26 14:04:03 +03:00
Merge pull request #14017 from poettering/analyze-calendar-tweaks
Add --base-time= for systemd-analyze calendar
This commit is contained in:
commit
a53c38f1a2
2
TODO
2
TODO
@ -37,6 +37,8 @@ Features:
|
||||
may be used to mark a whole binary as non-coredumpable. Would fix:
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=69447
|
||||
|
||||
* teach parse_timestamp() timezones like the calendar spec already knows it
|
||||
|
||||
* beef up hibernation to optionally do swapon/swapoff immediately before/after
|
||||
the hibernation
|
||||
|
||||
|
@ -778,6 +778,13 @@ Service b@0.service not loaded, b.socket cannot be started.
|
||||
iterations the specified calendar expression will elapse next. Defaults to 1.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--base-time=<replaceable>TIMESTAMP</replaceable></option></term>
|
||||
|
||||
<listitem><para>When used with the <command>calendar</command> command, show next iterations relative
|
||||
to the specified point in time. If not specified defaults to the current time.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<xi:include href="user-system-options.xml" xpointer="host" />
|
||||
<xi:include href="user-system-options.xml" xpointer="machine" />
|
||||
|
||||
|
@ -84,6 +84,7 @@ static bool arg_man = true;
|
||||
static bool arg_generators = false;
|
||||
static const char *arg_root = NULL;
|
||||
static unsigned arg_iterations = 1;
|
||||
static usec_t arg_base_time = USEC_INFINITY;
|
||||
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_dot_from_patterns, strv_freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_dot_to_patterns, strv_freep);
|
||||
@ -2136,7 +2137,10 @@ static int test_calendar(int argc, char *argv[], void *userdata) {
|
||||
char **p;
|
||||
usec_t n;
|
||||
|
||||
n = now(CLOCK_REALTIME); /* We want to use the same "base" for all expressions */
|
||||
if (arg_base_time != USEC_INFINITY)
|
||||
n = arg_base_time;
|
||||
else
|
||||
n = now(CLOCK_REALTIME); /* We want to use the same "base" for all expressions */
|
||||
|
||||
STRV_FOREACH(p, strv_skip(argv, 1)) {
|
||||
r = test_calendar_one(n, *p);
|
||||
@ -2258,6 +2262,7 @@ static int help(int argc, char *argv[], void *userdata) {
|
||||
" --man[=BOOL] Do [not] check for existence of man pages\n"
|
||||
" --generators[=BOOL] Do [not] run unit generators (requires privileges)\n"
|
||||
" --iterations=N Show the specified number of iterations\n"
|
||||
" --base-time=TIMESTAMP Calculate calendar times relative to specified time\n"
|
||||
"\nCommands:\n"
|
||||
" time Print time spent in the kernel\n"
|
||||
" blame Print list of running units ordered by time to init\n"
|
||||
@ -2307,6 +2312,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
ARG_MAN,
|
||||
ARG_GENERATORS,
|
||||
ARG_ITERATIONS,
|
||||
ARG_BASE_TIME,
|
||||
};
|
||||
|
||||
static const struct option options[] = {
|
||||
@ -2327,6 +2333,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
{ "host", required_argument, NULL, 'H' },
|
||||
{ "machine", required_argument, NULL, 'M' },
|
||||
{ "iterations", required_argument, NULL, ARG_ITERATIONS },
|
||||
{ "base-time", required_argument, NULL, ARG_BASE_TIME },
|
||||
{}
|
||||
};
|
||||
|
||||
@ -2433,6 +2440,13 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
|
||||
break;
|
||||
|
||||
case ARG_BASE_TIME:
|
||||
r = parse_timestamp(optarg, &arg_base_time);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to parse --base-time= parameter: %s", optarg);
|
||||
|
||||
break;
|
||||
|
||||
case '?':
|
||||
return -EINVAL;
|
||||
|
||||
@ -2472,7 +2486,6 @@ static int run(int argc, char *argv[]) {
|
||||
{ "get-log-level", VERB_ANY, 1, 0, get_log_level },
|
||||
{ "set-log-target", 2, 2, 0, set_log_target },
|
||||
{ "get-log-target", VERB_ANY, 1, 0, get_log_target },
|
||||
|
||||
{ "dump", VERB_ANY, 1, 0, dump },
|
||||
{ "cat-config", 2, VERB_ANY, 0, cat_config },
|
||||
{ "unit-files", VERB_ANY, VERB_ANY, 0, do_unit_files },
|
||||
|
Loading…
x
Reference in New Issue
Block a user