diff --git a/man/systemd-backlight@.service.xml b/man/systemd-backlight@.service.xml index 6e836d6921..682c52efb1 100644 --- a/man/systemd-backlight@.service.xml +++ b/man/systemd-backlight@.service.xml @@ -23,7 +23,8 @@ systemd-backlight@.service - /usr/lib/systemd/systemd-backlight + /usr/lib/systemd/systemd-backlight save [backlight|leds]:DEVICE + /usr/lib/systemd/systemd-backlight load [backlight|leds]:DEVICE diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c index 3a644363e1..215b3bbfe4 100644 --- a/src/backlight/backlight.c +++ b/src/backlight/backlight.c @@ -13,11 +13,36 @@ #include "main-func.h" #include "mkdir.h" #include "parse-util.h" +#include "pretty-print.h" +#include "terminal-util.h" #include "reboot-util.h" #include "string-util.h" #include "strv.h" #include "util.h" +static int help(void) { + _cleanup_free_ char *link = NULL; + int r; + + r = terminal_urlify_man("systemd-backlight", "8", &link); + if (r < 0) + return log_oom(); + + printf("%s save [backlight|leds]:DEVICE\n" + "%s load [backlight|leds]:DEVICE\n" + "\n%sSave and restore backlight brightness at shutdown and boot.%s\n\n" + " save Save current brightness\n" + " load Set brightness to be the previously saved value\n" + "\nSee the %s for details.\n" + , program_invocation_short_name + , program_invocation_short_name + , ansi_highlight(), ansi_normal() + , link + ); + + return 0; +} + static int find_pci_or_platform_parent(sd_device *device, sd_device **ret) { const char *subsystem, *sysname, *value; sd_device *parent; @@ -334,6 +359,9 @@ static int run(int argc, char *argv[]) { log_setup_service(); + if (strv_contains(strv_skip(argv, 1), "--help")) + return help(); + if (argc != 3) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "This program requires two arguments.");