summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKay Sievers <kay@vrfy.org>2014-06-20 15:57:43 +0200
committerKay Sievers <kay@vrfy.org>2014-06-20 15:57:43 +0200
commit2f3b873a49734f8ecc8d929612d33153acbda891 (patch)
tree57b675b313f60394b1c3b95a336346627b5462bf
parent351e57652a7d9a51f9064c089794d13801eaee73 (diff)
tmpfiles: copy/link /usr/share/factory/ files when the source argument is omitted
-rw-r--r--man/tmpfiles.d.xml11
-rw-r--r--src/tmpfiles/tmpfiles.c11
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)) {