summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/systemd-path.xml7
-rw-r--r--man/systemd.service.xml3
-rw-r--r--src/libsystemd/sd-path/sd-path.c14
-rw-r--r--src/path/path.c1
-rw-r--r--src/systemd/sd-path.h1
5 files changed, 21 insertions, 5 deletions
diff --git a/man/systemd-path.xml b/man/systemd-path.xml
index 7144569d59..025247c883 100644
--- a/man/systemd-path.xml
+++ b/man/systemd-path.xml
@@ -52,7 +52,9 @@
<refsynopsisdiv>
<cmdsynopsis>
- <command>systemd-path <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt" rep="repeat">NAME</arg></command>
+ <command>systemd-path</command>
+ <arg choice="opt" rep="repeat">OPTIONS</arg>
+ <arg choice="opt" rep="repeat">NAME</arg>
</cmdsynopsis>
</refsynopsisdiv>
@@ -81,8 +83,7 @@
<varlistentry>
<term><option>--suffix=</option></term>
- <listitem><para>The printed paths are suffixed by the
- specified string.</para></listitem>
+ <listitem><para>Printed paths are suffixed by the specified string.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
index e89cfe3f0e..55a9c6fbdc 100644
--- a/man/systemd.service.xml
+++ b/man/systemd.service.xml
@@ -1029,7 +1029,8 @@
<filename>bin/</filename> and <filename>sbin/</filename>. It is thus safe to use just the
executable name in case of executables located in any of the "standard" directories, and an
absolute path must be used in other cases. Using an absolute path is recommended to avoid
- ambiguity.</para>
+ ambiguity. Hint: this search path may be queried using
+ <command>systemd-path search-binaries-default</command>.</para>
<para>Example:</para>
diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c
index 419c763668..b2e8e63c1b 100644
--- a/src/libsystemd/sd-path/sd-path.c
+++ b/src/libsystemd/sd-path/sd-path.c
@@ -348,6 +348,7 @@ _public_ int sd_path_home(uint64_t type, const char *suffix, char **path) {
if (IN_SET(type,
SD_PATH_SEARCH_BINARIES,
+ SD_PATH_SEARCH_BINARIES_DEFAULT,
SD_PATH_SEARCH_LIBRARY_PRIVATE,
SD_PATH_SEARCH_LIBRARY_ARCH,
SD_PATH_SEARCH_SHARED,
@@ -566,7 +567,17 @@ static int get_search(uint64_t type, char ***list) {
false,
"/etc",
NULL);
- }
+
+ case SD_PATH_SEARCH_BINARIES_DEFAULT: {
+ char **t;
+
+ t = strv_split_nulstr(DEFAULT_PATH_NULSTR);
+ if (!t)
+ return -ENOMEM;
+
+ *list = t;
+ return 0;
+ }}
return -EOPNOTSUPP;
}
@@ -579,6 +590,7 @@ _public_ int sd_path_search(uint64_t type, const char *suffix, char ***paths) {
if (!IN_SET(type,
SD_PATH_SEARCH_BINARIES,
+ SD_PATH_SEARCH_BINARIES_DEFAULT,
SD_PATH_SEARCH_LIBRARY_PRIVATE,
SD_PATH_SEARCH_LIBRARY_ARCH,
SD_PATH_SEARCH_SHARED,
diff --git a/src/path/path.c b/src/path/path.c
index 0f029c4ae6..be17a444d3 100644
--- a/src/path/path.c
+++ b/src/path/path.c
@@ -67,6 +67,7 @@ static const char* const path_table[_SD_PATH_MAX] = {
[SD_PATH_USER_TEMPLATES] = "user-templates",
[SD_PATH_USER_DESKTOP] = "user-desktop",
[SD_PATH_SEARCH_BINARIES] = "search-binaries",
+ [SD_PATH_SEARCH_BINARIES_DEFAULT] = "search-binaries-default",
[SD_PATH_SEARCH_LIBRARY_PRIVATE] = "search-library-private",
[SD_PATH_SEARCH_LIBRARY_ARCH] = "search-library-arch",
[SD_PATH_SEARCH_SHARED] = "search-shared",
diff --git a/src/systemd/sd-path.h b/src/systemd/sd-path.h
index 2dfc8967b4..19f48b73eb 100644
--- a/src/systemd/sd-path.h
+++ b/src/systemd/sd-path.h
@@ -74,6 +74,7 @@ enum {
/* Search paths */
SD_PATH_SEARCH_BINARIES,
+ SD_PATH_SEARCH_BINARIES_DEFAULT,
SD_PATH_SEARCH_LIBRARY_PRIVATE,
SD_PATH_SEARCH_LIBRARY_ARCH,
SD_PATH_SEARCH_SHARED,