[systemd-commits] man/tmpfiles.d.xml src/tmpfiles

Kay Sievers kay at kemper.freedesktop.org
Fri Jun 20 07:03:58 PDT 2014


 man/tmpfiles.d.xml      |   11 +++++++++--
 src/tmpfiles/tmpfiles.c |   11 ++++++-----
 2 files changed, 15 insertions(+), 7 deletions(-)

New commits:
commit 2f3b873a49734f8ecc8d929612d33153acbda891
Author: Kay Sievers <kay at vrfy.org>
Date:   Fri Jun 20 15:57:43 2014 +0200

    tmpfiles: copy/link /usr/share/factory/ files when the source argument is omitted

diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml
index f3cc2ea..5e0b538 100644
--- a/man/tmpfiles.d.xml
+++ b/man/tmpfiles.d.xml
@@ -191,7 +191,11 @@ L    /tmp/foobar -    -    -    -   /dev/null</programlisting>
                                         symlink is to be created it
                                         will be removed and be
                                         replaced by the
-                                        symlink.</para></listitem>
+                                        symlink. If the argument is omitted,
+                                        symlinks to files with the same name
+                                        residing in the directory
+                                        <filename>/usr/share/factory/</filename>
+                                        are created.</para></listitem>
                                 </varlistentry>
 
                                 <varlistentry>
@@ -235,7 +239,10 @@ L    /tmp/foobar -    -    -    -   /dev/null</programlisting>
                                         destination directory already
                                         exists, instead the entire
                                         copy operation is
-                                        skipped.</para></listitem>
+                                        skipped. If the argument is omitted,
+                                        files from the source directory
+                                        <filename>/usr/share/factory/</filename>
+                                        with the same name are copied.</para></listitem>
                                 </varlistentry>
 
                                 <varlistentry>
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
index cbad78a..68cfa55 100644
--- a/src/tmpfiles/tmpfiles.c
+++ b/src/tmpfiles/tmpfiles.c
@@ -1249,10 +1249,10 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
 
         case CREATE_SYMLINK:
                 if (!i->argument) {
-                        log_error("[%s:%u] Symlink file requires argument.", fname, line);
-                        return -EBADMSG;
+                        i->argument = strappend("/usr/share/factory", i->path);
+                        if (!i->argument)
+                                return log_oom();
                 }
-
                 break;
 
         case WRITE_FILE:
@@ -1264,8 +1264,9 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
 
         case COPY_FILES:
                 if (!i->argument) {
-                        log_error("[%s:%u] Copy files requires argument.", fname, line);
-                        return -EBADMSG;
+                        i->argument = strappend("/usr/share/factory", i->path);
+                        if (!i->argument)
+                                return log_oom();
                 }
 
                 if (!path_is_absolute(i->argument)) {



More information about the systemd-commits mailing list