|
|
#!/bin/bash
PATH="${PATH/:$INSTALL_WRAPPER_MYPATH:/:}" PATH="${PATH#$INSTALL_WRAPPER_MYPATH:}" PATH="${PATH%:$INSTALL_WRAPPER_MYPATH}"
filter="${INSTALL_WRAPPER_FILTER:+|} $INSTALL_WRAPPER_FILTER"
if [ "$INSTALL_WRAPPER_NOLOOP" = 1 ]; then echo "--" echo "Found loop in install_wrapper: $0 $*" >&2 echo "INSTALL_WRAPPER_MYPATH=$INSTALL_WRAPPER_MYPATH" echo "PATH=$PATH" echo "--" exit 1 fi export INSTALL_WRAPPER_NOLOOP=1
logfile="${INSTALL_WRAPPER_LOGFILE:-/dev/null}" [ -z "${logfile##*/*}" -a ! -d "${logfile%/*}" ] && logfile=/dev/null
command="${0##*/}" destination="" declare -a sources newcommand="$command" sources_counter=0 error=0
echo "" >> $logfile echo "$PWD:" >> $logfile echo "* ${INSTALL_WRAPPER_FILTER:-No Filter.}" >> $logfile echo "- $command $*" >> $logfile
if [ "${*/--target-directory//}" != "$*" ]; then echo "= $command $*" >> $logfile $command "$@"; exit $? fi
while [ $# -gt 0 ]; do case "$1" in -g|-m|-o|-S|--group|--mode|--owner|--suffix) newcommand="$newcommand $1 $2" shift 1 ;; -s|--strip) if [ "$ROCKCFG_DEBUG" = 0 -a "$STRIP" = "strip" ] || [[ $command != *install ]] then newcommand="$newcommand $1" fi ;; -*) newcommand="$newcommand $1" ;; *) if [ -n "$destination" ]; then sources[sources_counter++]="$destination" fi destination="$1" ;; esac shift 1 done
[ -z "${destination##/*}" ] || destination="$PWD/$destination"
if [ "$filter" != " " ]; then destination="$( eval "echo \"$destination\" | tr -s '/' $filter" )" fi
if [ -z "$destination" ]; then : do nothing elif [ $sources_counter -eq 0 ]; then echo "+ $newcommand $destination" >> $logfile $newcommand "$destination" || error=$? elif [ -d "$destination" ]; then for source in "${sources[@]}"; do thisdest="${destination}" [ ! -d "${source//\/\///}" ] && thisdest="$thisdest/${source##*/}" thisdest="${thisdest//\/\///}" [ "$filter" != " " ] && thisdest="$( eval "echo \"$thisdest\" $filter" )" if [ ! -z "$thisdest" ]; then echo "+ $newcommand $source $thisdest" >> $logfile $newcommand "$source" "$thisdest" || error=$? fi done else echo "+ $newcommand ${sources[*]} $destination" >> $logfile $newcommand "${sources[@]}" "$destination" || error=$? fi
echo "===> Returncode: $error" >> $logfile exit $error
|