aboutsummaryrefslogtreecommitdiff
path: root/sh
diff options
context:
space:
mode:
authorAndrew Gregory <andrew.gregory.8@gmail.com>2014-03-26 12:13:20 -0400
committerAndrew Gregory <andrew.gregory.8@gmail.com>2014-03-27 11:36:41 -0400
commit686ee62a79e12ad73581ef4e151baad21b624935 (patch)
tree17c780512be2f1a2c01b73687c18ef3b0a971e75 /sh
parentc081633762dc66235fe385eedcc2cdf6bff83391 (diff)
tmpfiles: add support for --boot option
For compatibility with systemd-tmpfiles. Fixes #17 Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Diffstat (limited to 'sh')
-rwxr-xr-xsh/tmpfiles.sh.in10
1 files changed, 8 insertions, 2 deletions
diff --git a/sh/tmpfiles.sh.in b/sh/tmpfiles.sh.in
index da588e21..a9031632 100755
--- a/sh/tmpfiles.sh.in
+++ b/sh/tmpfiles.sh.in
@@ -214,7 +214,7 @@ _Z() {
CHOPTS=-R relabel "$@"
}
-CREATE=0 REMOVE=0 CLEAN=0 VERBOSE=0 DRYRUN=0 error=0 LINENO=0
+BOOT=0 CREATE=0 REMOVE=0 CLEAN=0 VERBOSE=0 DRYRUN=0 error=0 LINENO=0
EXCLUDE=
PREFIX=
FILE=
@@ -249,6 +249,7 @@ done
while [ $# -gt 0 ]; do
case $1 in
+ --boot) BOOT=1 ;;
--create) CREATE=1 ;;
--remove) REMOVE=1 ;;
--clean) CLEAN=1 ;; # TODO: Not implemented
@@ -266,7 +267,7 @@ if [ $(( CLEAN )) -eq 1 ] ; then
fi
if [ "$CREATE$REMOVE" = '00' ]; then
- printf 'usage: %s [--exclude-prefix=path] [--prefix=path] [--create] [--remove] [--clean] [--verbose] [--dry-run]\n' "${0##*/}"
+ printf 'usage: %s [--exclude-prefix=path] [--prefix=path] [--boot] [--create] [--remove] [--clean] [--verbose] [--dry-run]\n' "${0##*/}"
exit 1
fi
@@ -283,6 +284,7 @@ for FILE in $tmpfiles_d ; do
# Cmd Path Mode UID GID Age Argument
# d /run/user 0755 root root 10d -
# Mode, UID, GID, Age, Argument may be omitted!
+ # If Cmd ends with !, the line is only processed if --boot is passed
# XXX: Upstream says whitespace is NOT permitted in the Path argument.
# But IS allowed when globs are expanded for the x/r/R/z/Z types.
@@ -294,6 +296,10 @@ for FILE in $tmpfiles_d ; do
continue
fi
+ case $cmd in
+ *!) [ "$BOOT" -eq "1" ] || continue; cmd=${cmd%!} ;;
+ esac
+
# whine about invalid entries
case $cmd in
f|F|w|d|D|p|L|c|b|x|X|r|R|z|Z) ;;