From: Benjamin Drung Date: Thu, 14 Aug 2025 19:23:08 +0000 (+0200) Subject: refactor(dracut): add create_directories function X-Git-Tag: 109~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b2a68b548e46705ce4a1c19c8136ed63df86395;p=thirdparty%2Fdracut-ng.git refactor(dracut): add create_directories function Reduce code duplication by introducing the helper function `create_directories`. Note: `test -h` is the same as `test -L`. --- diff --git a/dracut.sh b/dracut.sh index a746c84ec..3237e893b 100755 --- a/dracut.sh +++ b/dracut.sh @@ -2062,6 +2062,21 @@ if [[ $print_cmdline ]]; then exit 0 fi +create_directories() { + local prefix="$1" + shift + for d in "$@"; do + d=${d#/} + [[ -e "${initdir}${prefix}/$d" ]] && continue + if [ -L "/$d" ]; then + inst_symlink "/$d" "${prefix}/$d" + else + # shellcheck disable=SC2174 + mkdir -m 0755 -p "${initdir}${prefix}/$d" + fi + done +} + # Create some directory structure first # shellcheck disable=SC2174 [[ $prefix ]] && mkdir -m 0755 -p "${initdir}${prefix}" @@ -2079,38 +2094,14 @@ if [[ $prefix ]]; then fi if [[ $kernel_only != yes ]]; then - for d in usr usr/bin usr/sbin bin etc lib sbin tmp var var/tmp $libdirs; do - d=${d#/} - [[ -e "${initdir}${prefix}/$d" ]] && continue - if [ -L "/$d" ]; then - inst_symlink "/$d" "${prefix}/$d" - else - # shellcheck disable=SC2174 - mkdir -m 0755 -p "${initdir}${prefix}/$d" - fi - done - - for d in dev proc sys sysroot root run; do - if [ -L "/$d" ]; then - inst_symlink "/$d" - else - # shellcheck disable=SC2174 - mkdir -m 0755 -p "$initdir/$d" - fi - done - + # shellcheck disable=SC2086 + create_directories "$prefix" usr usr/bin usr/sbin bin etc lib sbin tmp var var/tmp $libdirs + create_directories "" dev proc sys sysroot root run ln -sfn ../run "$initdir/var/run" ln -sfn ../run/lock "$initdir/var/lock" else - for d in lib $libdirs; do - [[ -e "${initdir}${prefix}/$d" ]] && continue - if [ -h "/$d" ]; then - inst "/$d" "${prefix}/$d" - else - # shellcheck disable=SC2174 - mkdir -m 0755 -p "${initdir}${prefix}/$d" - fi - done + # shellcheck disable=SC2086 + create_directories "$prefix" lib $libdirs fi mkdir -p "${initdir}"/lib/dracut