diff options
| author | William Hubbs <w.d.hubbs@gmail.com> | 2013-07-25 00:58:38 -0500 | 
|---|---|---|
| committer | William Hubbs <w.d.hubbs@gmail.com> | 2013-07-25 00:58:38 -0500 | 
| commit | e9189cd8a24b5614f3e82aec4a779e4d90656b1e (patch) | |
| tree | 0a2c70fe8787524d66111d457b92cf9e5c4106c4 | |
| parent | 19579687fd6d4fb80ffbd83c010fab6777c3120c (diff) | |
| download | openrc-e9189cd8a24b5614f3e82aec4a779e4d90656b1e.tar.xz | |
tmpfiles: add --prefix and --exclude-prefix options
| -rwxr-xr-x | sh/tmpfiles.sh.in | 19 | 
1 files changed, 18 insertions, 1 deletions
| diff --git a/sh/tmpfiles.sh.in b/sh/tmpfiles.sh.in index 59fdcd76..22d5f1f5 100755 --- a/sh/tmpfiles.sh.in +++ b/sh/tmpfiles.sh.in @@ -15,6 +15,17 @@  DRYRUN=0 +checkprefix() { +	n=$1 +	shift +	for x in $@; do +		case $n in +			${x}*) return 0 ;; +	esac +	done +	return 1 +} +  warninvalid() {  	printf "tmpfiles: ignoring invalid entry on line %d of \`%s'\n" "$LINENUM" "$FILE"  	error=$(( error+1 )) @@ -202,6 +213,8 @@ _Z() {  }  CREATE=0 REMOVE=0 CLEAN=0 VERBOSE=0 DRYRUN=0 error=0 LINENO=0 +EXCLUDE= +PREFIX=  FILE=  fragments=  # XXX: The harcoding of /usr/lib/ is an explicit choice by upstream @@ -237,6 +250,8 @@ while [ $# -gt 0 ]; do  		--clean) CLEAN=1 ;; # TODO: Not implemented  		--verbose) VERBOSE=1 ;;  		--dryrun|--dry-run) DRYRUN=1 ;; +		--exclude-prefix=*) EXCLUDE="${EXCLUDE}${1##--exclude-prefix=} " ;; +		--prefix=*) PREFIX="${PREFIX}${1##--prefix=} " ;;  	esac  	shift  done @@ -247,7 +262,7 @@ if [ $(( CLEAN )) -eq 1 ] ; then  fi  if [ "$CREATE$REMOVE" = '00' ]; then -	printf 'usage: %s [--create] [--remove] [--clean] [--verbose] [--dry-run]\n' "${0##*/}" +	printf 'usage: %s [--exclude-prefix=path] [--prefix=path] [--create] [--remove] [--clean] [--verbose] [--dry-run]\n' "${0##*/}"  	exit 1  fi @@ -297,6 +312,8 @@ for FILE in $tmpfiles_d ; do  		[ "$arg" = '-' -o "$arg" = '' ] && arg=''  		set -- "$path" "$mode" "$uid" "$gid" "$age" "$arg" +		[ -n "$EXCLUDE" ] && checkprefix $path $EXCLUDE && continue +		[ -n "$PREFIX" ] && ! checkprefix $path $PREFIX && continue  		[ "$VERBOSE" -eq "1" ] && echo _$cmd "$@"  		_$cmd "$@"  		rc=$? | 
