]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-path: export env. generators paths
authorDavid Tardon <dtardon@redhat.com>
Fri, 20 Jan 2023 14:17:50 +0000 (15:17 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Sat, 21 Jan 2023 11:27:40 +0000 (11:27 +0000)
man/sd_path_lookup.xml
src/libsystemd/sd-path/sd-path.c
src/path/path.c
src/systemd/sd-path.h

index 01fb1ed8f158352fb6b66b624c8cad18f85451a1..eda43960e799f857fd2aa47613e6e0a96df693ae 100644 (file)
         <constant>SD_PATH_CATALOG</constant>,
 
         <constant>SD_PATH_SYSTEMD_SEARCH_NETWORK</constant>,
+
+        <constant>SD_PATH_SYSTEMD_SYSTEM_ENVIRONMENT_GENERATOR</constant>,
+        <constant>SD_PATH_SYSTEMD_USER_ENVIRONMENT_GENERATOR</constant>,
+        <constant>SD_PATH_SYSTEMD_SEARCH_SYSTEM_ENVIRONMENT_GENERATOR</constant>,
+        <constant>SD_PATH_SYSTEMD_SEARCH_USER_ENVIRONMENT_GENERATOR</constant>,
 };</funcsynopsisinfo>
 
       <funcprototype>
index ded64a66efad22e7b367b752a616047f6c084b3f..1af3a36d1d93acd2d08a5e3e39c80bd38c92177d 100644 (file)
@@ -380,6 +380,14 @@ static int get_path(uint64_t type, char **buffer, const char **ret) {
         case SD_PATH_CATALOG:
                 *ret = "/usr/lib/systemd/catalog";
                 return 0;
+
+        case SD_PATH_SYSTEMD_SYSTEM_ENVIRONMENT_GENERATOR:
+                *ret = SYSTEM_ENV_GENERATOR_DIR;
+                return 0;
+
+        case SD_PATH_SYSTEMD_USER_ENVIRONMENT_GENERATOR:
+                *ret = USER_ENV_GENERATOR_DIR;
+                return 0;
         }
 
         return -EOPNOTSUPP;
@@ -626,6 +634,18 @@ static int get_search(uint64_t type, char ***list) {
                 return 0;
         }
 
+        case SD_PATH_SYSTEMD_SEARCH_SYSTEM_ENVIRONMENT_GENERATOR:
+        case SD_PATH_SYSTEMD_SEARCH_USER_ENVIRONMENT_GENERATOR: {
+                char **t;
+
+                t = env_generator_binary_paths(type == SD_PATH_SYSTEMD_SEARCH_SYSTEM_ENVIRONMENT_GENERATOR);
+                if (!t)
+                        return -ENOMEM;
+
+                *list = t;
+                return 0;
+        }
+
         case SD_PATH_SYSTEMD_SEARCH_NETWORK:
                 return strv_from_nulstr(list, NETWORK_DIRS_NULSTR);
 
index d3348ce04fd8a33837a56ebab779e45b2f1fa774..52662402474154ed60e09422ca07e25d96e0dbd6 100644 (file)
 static const char *arg_suffix = NULL;
 
 static const char* const path_table[_SD_PATH_MAX] = {
-        [SD_PATH_TEMPORARY]                       = "temporary",
-        [SD_PATH_TEMPORARY_LARGE]                 = "temporary-large",
-        [SD_PATH_SYSTEM_BINARIES]                 = "system-binaries",
-        [SD_PATH_SYSTEM_INCLUDE]                  = "system-include",
-        [SD_PATH_SYSTEM_LIBRARY_PRIVATE]          = "system-library-private",
-        [SD_PATH_SYSTEM_LIBRARY_ARCH]             = "system-library-arch",
-        [SD_PATH_SYSTEM_SHARED]                   = "system-shared",
-        [SD_PATH_SYSTEM_CONFIGURATION_FACTORY]    = "system-configuration-factory",
-        [SD_PATH_SYSTEM_STATE_FACTORY]            = "system-state-factory",
-        [SD_PATH_SYSTEM_CONFIGURATION]            = "system-configuration",
-        [SD_PATH_SYSTEM_RUNTIME]                  = "system-runtime",
-        [SD_PATH_SYSTEM_RUNTIME_LOGS]             = "system-runtime-logs",
-        [SD_PATH_SYSTEM_STATE_PRIVATE]            = "system-state-private",
-        [SD_PATH_SYSTEM_STATE_LOGS]               = "system-state-logs",
-        [SD_PATH_SYSTEM_STATE_CACHE]              = "system-state-cache",
-        [SD_PATH_SYSTEM_STATE_SPOOL]              = "system-state-spool",
-        [SD_PATH_USER_BINARIES]                   = "user-binaries",
-        [SD_PATH_USER_LIBRARY_PRIVATE]            = "user-library-private",
-        [SD_PATH_USER_LIBRARY_ARCH]               = "user-library-arch",
-        [SD_PATH_USER_SHARED]                     = "user-shared",
-        [SD_PATH_USER_CONFIGURATION]              = "user-configuration",
-        [SD_PATH_USER_RUNTIME]                    = "user-runtime",
-        [SD_PATH_USER_STATE_CACHE]                = "user-state-cache",
-        [SD_PATH_USER]                            = "user",
-        [SD_PATH_USER_DOCUMENTS]                  = "user-documents",
-        [SD_PATH_USER_MUSIC]                      = "user-music",
-        [SD_PATH_USER_PICTURES]                   = "user-pictures",
-        [SD_PATH_USER_VIDEOS]                     = "user-videos",
-        [SD_PATH_USER_DOWNLOAD]                   = "user-download",
-        [SD_PATH_USER_PUBLIC]                     = "user-public",
-        [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",
-        [SD_PATH_SEARCH_CONFIGURATION_FACTORY]    = "search-configuration-factory",
-        [SD_PATH_SEARCH_STATE_FACTORY]            = "search-state-factory",
-        [SD_PATH_SEARCH_CONFIGURATION]            = "search-configuration",
-
-        [SD_PATH_SYSTEMD_UTIL]                    = "systemd-util",
-        [SD_PATH_SYSTEMD_SYSTEM_UNIT]             = "systemd-system-unit",
-        [SD_PATH_SYSTEMD_SYSTEM_PRESET]           = "systemd-system-preset",
-        [SD_PATH_SYSTEMD_SYSTEM_CONF]             = "systemd-system-conf",
-        [SD_PATH_SYSTEMD_SEARCH_SYSTEM_UNIT]      = "systemd-search-system-unit",
-        [SD_PATH_SYSTEMD_SYSTEM_GENERATOR]        = "systemd-system-generator",
-        [SD_PATH_SYSTEMD_SEARCH_SYSTEM_GENERATOR] = "systemd-search-system-generator",
-        [SD_PATH_SYSTEMD_USER_UNIT]               = "systemd-user-unit",
-        [SD_PATH_SYSTEMD_USER_PRESET]             = "systemd-user-preset",
-        [SD_PATH_SYSTEMD_USER_CONF]               = "systemd-user-conf",
-        [SD_PATH_SYSTEMD_SEARCH_USER_UNIT]        = "systemd-search-user-unit",
-        [SD_PATH_SYSTEMD_SEARCH_USER_GENERATOR]   = "systemd-search-user-generator",
-        [SD_PATH_SYSTEMD_USER_GENERATOR]          = "systemd-user-generator",
-        [SD_PATH_SYSTEMD_SLEEP]                   = "systemd-sleep",
-        [SD_PATH_SYSTEMD_SHUTDOWN]                = "systemd-shutdown",
-
-        [SD_PATH_TMPFILES]                        = "tmpfiles",
-        [SD_PATH_SYSUSERS]                        = "sysusers",
-        [SD_PATH_SYSCTL]                          = "sysctl",
-        [SD_PATH_BINFMT]                          = "binfmt",
-        [SD_PATH_MODULES_LOAD]                    = "modules-load",
-        [SD_PATH_CATALOG]                         = "catalog",
-
-        [SD_PATH_SYSTEMD_SEARCH_NETWORK]          = "systemd-search-network",
+        [SD_PATH_TEMPORARY]                                   = "temporary",
+        [SD_PATH_TEMPORARY_LARGE]                             = "temporary-large",
+        [SD_PATH_SYSTEM_BINARIES]                             = "system-binaries",
+        [SD_PATH_SYSTEM_INCLUDE]                              = "system-include",
+        [SD_PATH_SYSTEM_LIBRARY_PRIVATE]                      = "system-library-private",
+        [SD_PATH_SYSTEM_LIBRARY_ARCH]                         = "system-library-arch",
+        [SD_PATH_SYSTEM_SHARED]                               = "system-shared",
+        [SD_PATH_SYSTEM_CONFIGURATION_FACTORY]                = "system-configuration-factory",
+        [SD_PATH_SYSTEM_STATE_FACTORY]                        = "system-state-factory",
+        [SD_PATH_SYSTEM_CONFIGURATION]                        = "system-configuration",
+        [SD_PATH_SYSTEM_RUNTIME]                              = "system-runtime",
+        [SD_PATH_SYSTEM_RUNTIME_LOGS]                         = "system-runtime-logs",
+        [SD_PATH_SYSTEM_STATE_PRIVATE]                        = "system-state-private",
+        [SD_PATH_SYSTEM_STATE_LOGS]                           = "system-state-logs",
+        [SD_PATH_SYSTEM_STATE_CACHE]                          = "system-state-cache",
+        [SD_PATH_SYSTEM_STATE_SPOOL]                          = "system-state-spool",
+        [SD_PATH_USER_BINARIES]                               = "user-binaries",
+        [SD_PATH_USER_LIBRARY_PRIVATE]                        = "user-library-private",
+        [SD_PATH_USER_LIBRARY_ARCH]                           = "user-library-arch",
+        [SD_PATH_USER_SHARED]                                 = "user-shared",
+        [SD_PATH_USER_CONFIGURATION]                          = "user-configuration",
+        [SD_PATH_USER_RUNTIME]                                = "user-runtime",
+        [SD_PATH_USER_STATE_CACHE]                            = "user-state-cache",
+        [SD_PATH_USER]                                        = "user",
+        [SD_PATH_USER_DOCUMENTS]                              = "user-documents",
+        [SD_PATH_USER_MUSIC]                                  = "user-music",
+        [SD_PATH_USER_PICTURES]                               = "user-pictures",
+        [SD_PATH_USER_VIDEOS]                                 = "user-videos",
+        [SD_PATH_USER_DOWNLOAD]                               = "user-download",
+        [SD_PATH_USER_PUBLIC]                                 = "user-public",
+        [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",
+        [SD_PATH_SEARCH_CONFIGURATION_FACTORY]                = "search-configuration-factory",
+        [SD_PATH_SEARCH_STATE_FACTORY]                        = "search-state-factory",
+        [SD_PATH_SEARCH_CONFIGURATION]                        = "search-configuration",
+
+        [SD_PATH_SYSTEMD_UTIL]                                = "systemd-util",
+        [SD_PATH_SYSTEMD_SYSTEM_UNIT]                         = "systemd-system-unit",
+        [SD_PATH_SYSTEMD_SYSTEM_PRESET]                       = "systemd-system-preset",
+        [SD_PATH_SYSTEMD_SYSTEM_CONF]                         = "systemd-system-conf",
+        [SD_PATH_SYSTEMD_SEARCH_SYSTEM_UNIT]                  = "systemd-search-system-unit",
+        [SD_PATH_SYSTEMD_SYSTEM_GENERATOR]                    = "systemd-system-generator",
+        [SD_PATH_SYSTEMD_SEARCH_SYSTEM_GENERATOR]             = "systemd-search-system-generator",
+        [SD_PATH_SYSTEMD_USER_UNIT]                           = "systemd-user-unit",
+        [SD_PATH_SYSTEMD_USER_PRESET]                         = "systemd-user-preset",
+        [SD_PATH_SYSTEMD_USER_CONF]                           = "systemd-user-conf",
+        [SD_PATH_SYSTEMD_SEARCH_USER_UNIT]                    = "systemd-search-user-unit",
+        [SD_PATH_SYSTEMD_SEARCH_USER_GENERATOR]               = "systemd-search-user-generator",
+        [SD_PATH_SYSTEMD_USER_GENERATOR]                      = "systemd-user-generator",
+        [SD_PATH_SYSTEMD_SLEEP]                               = "systemd-sleep",
+        [SD_PATH_SYSTEMD_SHUTDOWN]                            = "systemd-shutdown",
+
+        [SD_PATH_TMPFILES]                                    = "tmpfiles",
+        [SD_PATH_SYSUSERS]                                    = "sysusers",
+        [SD_PATH_SYSCTL]                                      = "sysctl",
+        [SD_PATH_BINFMT]                                      = "binfmt",
+        [SD_PATH_MODULES_LOAD]                                = "modules-load",
+        [SD_PATH_CATALOG]                                     = "catalog",
+
+        [SD_PATH_SYSTEMD_SEARCH_NETWORK]                      = "systemd-search-network",
+
+        [SD_PATH_SYSTEMD_SYSTEM_ENVIRONMENT_GENERATOR]        = "systemd-system-environment-generator",
+        [SD_PATH_SYSTEMD_USER_ENVIRONMENT_GENERATOR]          = "systemd-user-environment-generator",
+        [SD_PATH_SYSTEMD_SEARCH_SYSTEM_ENVIRONMENT_GENERATOR] = "systemd-search-system-environment-generator",
+        [SD_PATH_SYSTEMD_SEARCH_USER_ENVIRONMENT_GENERATOR]   = "systemd-search-user-environment-generator",
 };
 
 static int list_homes(void) {
index 161a8e0c8d1014869ba267cc0f7ad059dd19db1f..0b61484f5e62815f3c0ad42b06134851ca1d7e00 100644 (file)
@@ -110,6 +110,12 @@ enum {
         /* systemd-networkd search paths */
         SD_PATH_SYSTEMD_SEARCH_NETWORK,
 
+        /* systemd environment generators */
+        SD_PATH_SYSTEMD_SYSTEM_ENVIRONMENT_GENERATOR,
+        SD_PATH_SYSTEMD_USER_ENVIRONMENT_GENERATOR,
+        SD_PATH_SYSTEMD_SEARCH_SYSTEM_ENVIRONMENT_GENERATOR,
+        SD_PATH_SYSTEMD_SEARCH_USER_ENVIRONMENT_GENERATOR,
+
         _SD_PATH_MAX
 };