From: Harald Hoyer Date: Fri, 22 Jun 2012 13:09:07 +0000 (+0200) Subject: dracut-functions.sh:inst_simple() do inst_symlink for symlinks X-Git-Tag: 020~48 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=22048b44db5f598636d28c5c9ae7b8c73099dc98;p=thirdparty%2Fdracut.git dracut-functions.sh:inst_simple() do inst_symlink for symlinks --- diff --git a/dracut-functions.sh b/dracut-functions.sh index b9ce688ac..273d2a594 100755 --- a/dracut-functions.sh +++ b/dracut-functions.sh @@ -424,18 +424,21 @@ inst_simple() { [[ -f "$1" ]] || return 1 strstr "$1" "/" || return 1 - local _src=$1 target="${2:-$1}" - if ! [[ -d ${initdir}/$target ]]; then - [[ -e ${initdir}/$target ]] && return 0 - [[ -L ${initdir}/$target ]] && return 0 - [[ -d "${initdir}/${target%/*}" ]] || inst_dir "${target%/*}" + local _src=$1 _target="${2:-$1}" + + [[ -L $_src ]] && return inst_symlink $_src $_target + + if ! [[ -d ${initdir}/$_target ]]; then + [[ -e ${initdir}/$_target ]] && return 0 + [[ -L ${initdir}/$_target ]] && return 0 + [[ -d "${initdir}/${_target%/*}" ]] || inst_dir "${_target%/*}" fi # install checksum files also if [[ -e "${_src%/*}/.${_src##*/}.hmac" ]]; then - inst "${_src%/*}/.${_src##*/}.hmac" "${target%/*}/.${target##*/}.hmac" + inst "${_src%/*}/.${_src##*/}.hmac" "${_target%/*}/.${_target##*/}.hmac" fi ddebug "Installing $_src" - cp --reflink=auto --sparse=auto -pfL "$_src" "${initdir}/$target" + cp --reflink=auto --sparse=auto -pfL "$_src" "${initdir}/$_target" } # find symlinks linked to given library file