etc-update: support scan paths on the command line
authorMike Frysinger <vapier@gentoo.org>
Sun, 11 Mar 2012 02:43:30 +0000 (21:43 -0500)
committerMike Frysinger <vapier@gentoo.org>
Sun, 11 Mar 2012 02:44:22 +0000 (21:44 -0500)
URL: http://bugs.gentoo.org/59235
Reported-by: Cory Visi <merlin@gentoo.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
bin/etc-update
man/etc-update.1

index 989d36793f1580f178e4222bd6d6be798b32469c..c49c4b8f6eed6273d1d5469971d884a4d0e1399d 100755 (executable)
@@ -52,7 +52,7 @@ scan() {
        local find_opts
        local path
 
-       for path in ${CONFIG_PROTECT} ; do
+       for path in ${SCAN_PATHS} ; do
                path="${EROOT%/}${path}"
 
                [[ -w ${path} ]] || die "Need write access to ${path}"
@@ -544,7 +544,9 @@ usage() {
        cat <<-EOF
        etc-update: Handle configuration file updates
 
-       Usage: etc-update [options]
+       Usage: etc-update [options] [paths to scan]
+
+       If no paths are specified, then \${CONFIG_PROTECT} will be used.
 
        Options:
          -d, --debug    Enable shell debugging
@@ -581,7 +583,8 @@ while [[ -n $1 ]] ; do
                -v|--verbose) VERBOSE=true;;
                -V|--version) emerge --version; exit 0;;
                --automode)   parse_automode_flag $2 && shift || usage 1 "Invalid mode '$2'";;
-               *)            usage 1 "Invalid option '$1'";;
+               -*)           usage 1 "Invalid option '$1'";;
+               *)            break;;
        esac
        shift
 done
@@ -599,6 +602,7 @@ portage_vars=(
 )
 eval $(portageq envvar -v ${portage_vars[@]})
 export PORTAGE_TMPDIR
+SCAN_PATHS=${*:-${CONFIG_PROTECT}}
 
 TMP="${PORTAGE_TMPDIR}/etc-update-$$"
 trap "die terminated" SIGTERM
@@ -663,7 +667,7 @@ else
 fi
 
 if ${VERBOSE} ; then
-       for v in ${portage_vars[@]} ${cfg_vars[@]} TMP ; do
+       for v in ${portage_vars[@]} ${cfg_vars[@]} TMP SCAN_PATHS ; do
                echo "${v}=${!v}"
        done
 fi
index bebef5b6951f21933a0f45eb08c0d2331316c3c6..85d102d926acede0aa4c824cbea5d1efd025a111 100644 (file)
@@ -3,7 +3,7 @@
 etc-update \- handle configuration file updates
 .SH SYNOPSIS
 .BR etc-update
-[\fIoptions\fR] [\fI--automode <mode>\fR]
+[\fIoptions\fR] [\fI--automode <mode>\fR] [\fIpaths to scan\fR]
 .SH DESCRIPTION
 .I etc-update
 is supposed to be run after merging a new package to see if
@@ -13,7 +13,8 @@ configuration file will override an old one,
 will prompt the user for a decision.
 .PP
 .I etc-update
-will check all directories in the \fICONFIG_PROTECT\fR variable.  All
+will check all directories specified on the command line.  If no paths
+are given, then the \fICONFIG_PROTECT\fR variable will be used.  All
 config files found in \fICONFIG_PROTECT_MASK\fR will automatically be
 updated for you by \fIetc-update\fR.  See \fBmake.conf\fR(5) for more
 information.