summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--man/systemd-backlight@.service.xml3
-rw-r--r--src/backlight/backlight.c28
2 files changed, 30 insertions, 1 deletions
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 @@
<refsynopsisdiv>
<para><filename>systemd-backlight@.service</filename></para>
- <para><filename>/usr/lib/systemd/systemd-backlight</filename></para>
+ <para><filename>/usr/lib/systemd/systemd-backlight</filename> save [backlight|leds]:DEVICE</para>
+ <para><filename>/usr/lib/systemd/systemd-backlight</filename> load [backlight|leds]:DEVICE</para>
</refsynopsisdiv>
<refsect1>
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.");