From 7953a6ab718185096e5729482f91b319d4a67e90 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Fri, 22 Jun 2012 15:09:07 +0200 Subject: [PATCH] dracut-functions.sh:inst_simple() do inst_symlink for symlinks --- dracut-functions.sh | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/dracut-functions.sh b/dracut-functions.sh index b9ce688..273d2a5 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