Blob Blame History Raw
From 7953a6ab718185096e5729482f91b319d4a67e90 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
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