mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-11-24 07:20:56 +07:00
journalctl: add --cursor switch
This commit is contained in:
parent
1b89884ba3
commit
8f14c8327b
@ -254,6 +254,15 @@
|
||||
current boot.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--cursor=</option></term>
|
||||
<term><option>-c</option></term>
|
||||
|
||||
<listitem><para>Jump to the location
|
||||
in the journal specified by the passed
|
||||
cursor.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--directory=</option></term>
|
||||
<term><option>-D</option></term>
|
||||
|
@ -63,6 +63,7 @@ static bool arg_no_tail = false;
|
||||
static bool arg_quiet = false;
|
||||
static bool arg_merge = false;
|
||||
static bool arg_this_boot = false;
|
||||
static const char *arg_cursor = NULL;
|
||||
static const char *arg_directory = NULL;
|
||||
static int arg_priorities = 0xFF;
|
||||
static const char *arg_verify_key = NULL;
|
||||
@ -87,6 +88,7 @@ static int help(void) {
|
||||
" --version Show package version\n"
|
||||
" --no-pager Do not pipe output into a pager\n"
|
||||
" -a --all Show all fields, including long and unprintable\n"
|
||||
" -c --cursor=CURSOR Jump to the specified cursor\n"
|
||||
" -f --follow Follow journal\n"
|
||||
" -n --lines[=INTEGER] Number of journal entries to show\n"
|
||||
" --no-tail Show all lines, even in follow mode\n"
|
||||
@ -148,6 +150,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
{ "verify", no_argument, NULL, ARG_VERIFY },
|
||||
{ "verify-key", required_argument, NULL, ARG_VERIFY_KEY },
|
||||
{ "disk-usage", no_argument, NULL, ARG_DISK_USAGE },
|
||||
{ "cursor", no_argument, NULL, 'c' },
|
||||
{ NULL, 0, NULL, 0 }
|
||||
};
|
||||
|
||||
@ -156,7 +159,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
assert(argc >= 0);
|
||||
assert(argv);
|
||||
|
||||
while ((c = getopt_long(argc, argv, "hfo:an::qmbD:p:", options, NULL)) >= 0) {
|
||||
while ((c = getopt_long(argc, argv, "hfo:an::qmbD:p:c:", options, NULL)) >= 0) {
|
||||
|
||||
switch (c) {
|
||||
|
||||
@ -228,6 +231,10 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
arg_directory = optarg;
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
arg_cursor = optarg;
|
||||
break;
|
||||
|
||||
case ARG_HEADER:
|
||||
arg_action = ACTION_PRINT_HEADER;
|
||||
break;
|
||||
@ -829,7 +836,16 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
}
|
||||
|
||||
if (arg_lines >= 0) {
|
||||
if (arg_cursor) {
|
||||
r = sd_journal_seek_cursor(j, arg_cursor);
|
||||
if (r < 0) {
|
||||
log_error("Failed to seek to cursor: %s", strerror(-r));
|
||||
goto finish;
|
||||
}
|
||||
|
||||
r = sd_journal_next(j);
|
||||
|
||||
} else if (arg_lines >= 0) {
|
||||
r = sd_journal_seek_tail(j);
|
||||
if (r < 0) {
|
||||
log_error("Failed to seek to tail: %s", strerror(-r));
|
||||
@ -837,6 +853,7 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
r = sd_journal_previous_skip(j, arg_lines);
|
||||
|
||||
} else {
|
||||
r = sd_journal_seek_head(j);
|
||||
if (r < 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user