diff options
author | Kay Sievers <kay@vrfy.org> | 2014-06-20 15:57:43 +0200 |
---|---|---|
committer | Kay Sievers <kay@vrfy.org> | 2014-06-20 15:57:43 +0200 |
commit | 2f3b873a49734f8ecc8d929612d33153acbda891 (patch) | |
tree | 57b675b313f60394b1c3b95a336346627b5462bf | |
parent | 351e57652a7d9a51f9064c089794d13801eaee73 (diff) |
tmpfiles: copy/link /usr/share/factory/ files when the source argument is omitted
-rw-r--r-- | man/tmpfiles.d.xml | 11 | ||||
-rw-r--r-- | src/tmpfiles/tmpfiles.c | 11 |
2 files changed, 15 insertions, 7 deletions
diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml index f3cc2ea50c..5e0b538341 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 cbad78aea5..68cfa55ce9 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)) { |