tmpfiles: copy/link /usr/share/factory/ files when the source argument is omitted
authorKay Sievers <kay@vrfy.org>
Fri, 20 Jun 2014 13:57:43 +0000 (15:57 +0200)
committerKay Sievers <kay@vrfy.org>
Fri, 20 Jun 2014 13:57:43 +0000 (15:57 +0200)
man/tmpfiles.d.xml
src/tmpfiles/tmpfiles.c

index f3cc2ea..5e0b538 100644 (file)
@@ -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>
index cbad78a..68cfa55 100644 (file)
@@ -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)) {