while [ $# -gt 0 ]; do
case $1 in
$_option=*)
- echo "${1#${_option}=}"
+ echo "${1#"${_option}"=}"
break
;;
esac
# make sure that library links are correct and up to date
build_ld_cache() {
for f in "$dracutsysrootdir"/etc/ld.so.conf "$dracutsysrootdir"/etc/ld.so.conf.d/*; do
- [[ -f $f ]] && inst_simple "${f#$dracutsysrootdir}"
+ [[ -f $f ]] && inst_simple "${f#"$dracutsysrootdir"}"
done
if ! $DRACUT_LDCONFIG -r "$initdir" -f /etc/ld.so.conf; then
if [[ $EUID == 0 ]]; then
for _dir in $libdirs; do
for _i in "$@"; do
for _f in "$dracutsysrootdir$_dir"/$_i; do
- [[ ${_f#$dracutsysrootdir} =~ $_pattern ]] || continue
- [[ -e $_f ]] && _files+=("${_f#$dracutsysrootdir}")
+ [[ ${_f#"$dracutsysrootdir"} =~ $_pattern ]] || continue
+ [[ -e $_f ]] && _files+=("${_f#"$dracutsysrootdir"}")
done
done
done
for _dir in $libdirs; do
for _i in "$@"; do
for _f in "$dracutsysrootdir$_dir"/$_i; do
- [[ -e $_f ]] && _files+=("${_f#$dracutsysrootdir}")
+ [[ -e $_f ]] && _files+=("${_f#"$dracutsysrootdir"}")
done
done
done
for ((i = 0; i < len; i++)); do
case ${dracut_args[$i]} in
--regenerate-all | --parallel)
+ # shellcheck disable=SC2184
unset dracut_args["$i"]
;;
esac
if [ -L "$dracutsysrootdir$i" ]; then
rl=$(readlink -f "$dracutsysrootdir$i")
fi
- rl="${rl#$dracutsysrootdir}"
+ rl="${rl#"$dracutsysrootdir"}"
if [[ $NPATH != *:$rl* ]]; then
NPATH+=":$rl"
fi
[[ -e $objectname || -L $objectname ]] || continue
if [[ -d $objectname ]] && [[ ! -L $objectname ]]; then
# objectname is a directory, let's compute the final directory name
- object_destdir=${destdir}/${objectname#$src/}
+ object_destdir=${destdir}/${objectname#"$src"/}
if ! [[ -e $object_destdir ]]; then
# shellcheck disable=SC2174
mkdir -m 0755 -p "$object_destdir"
for x in "$dracutsysrootdir"/lib/modules/keys/*; do
[[ ${x} == "$dracutsysrootdir/lib/modules/keys/*" ]] && break
- inst_simple "${x#$dracutsysrootdir}"
+ inst_simple "${x#"$dracutsysrootdir"}"
done
}
}
set_terminal() {
- local dev=$1
+ local dev="$1"
if [ "${UNICODE}" = 1 ]; then
printf '\033%%G' >&7
}
dev_open() {
- local dev=$1
+ local dev="$1"
exec 6< "${dev}" \
&& exec 7>> "${dev}"
fi
# Note: hostname can be fqdn OR short hostname, so chop off any
# trailing domain name and explicity add any domain if set.
- [ -n "$hostname" ] && echo "echo ${hostname%.$domain}${domain:+.$domain} > /proc/sys/kernel/hostname" > /tmp/net."$netif".hostname
+ [ -n "$hostname" ] && echo "echo ${hostname%."$domain"}${domain:+.$domain} > /proc/sys/kernel/hostname" > /tmp/net."$netif".hostname
}
setup_interface6() {
# Note: hostname can be fqdn OR short hostname, so chop off any
# trailing domain name and explicity add any domain if set.
- [ -n "$hostname" ] && echo "echo ${hostname%.$domain}${domain:+.$domain} > /proc/sys/kernel/hostname" > /tmp/net."$netif".hostname
+ [ -n "$hostname" ] && echo "echo ${hostname%."$domain"}${domain:+.$domain} > /proc/sys/kernel/hostname" > /tmp/net."$netif".hostname
}
parse_option_121() {
# We translate list of slaves to space-separated here to make it easier to loop over them in ifup
# Ditto for bonding options
parsebond() {
- local v=${1}:
+ local v="${1}":
set --
while [ -n "$v" ]; do
set -- "$@" "${v%%:*}"
#
parsebridge() {
- local v=${1}:
+ local v="${1}":
set --
while [ -n "$v" ]; do
set -- "$@" "${v%%:*}"
# This ensures that BOOTDEV is always first in IFACES
if [ -n "$BOOTDEV" ] && [ -n "$IFACES" ]; then
- IFACES="${IFACES%$BOOTDEV*} ${IFACES#*$BOOTDEV}"
+ IFACES="${IFACES%"$BOOTDEV"*} ${IFACES#*"$BOOTDEV"}"
IFACES="$BOOTDEV $IFACES"
fi
#
parseteam() {
- local v=${1}:
+ local v="${1}":
set --
while [ -n "$v" ]; do
set -- "$@" "${v%%:*}"
#
parsevlan() {
- local v=${1}:
+ local v="${1}":
set --
while [ -n "$v" ]; do
set -- "$@" "${v%%:*}"
# pxelinux provides macaddr '-' separated, but we need ':'
fix_bootif() {
- local macaddr=${1}
+ local macaddr="${1}"
local IFS='-'
# shellcheck disable=SC2086
macaddr=$(printf '%s:' ${macaddr})
iscsi_target_ip=${v#[[]}
iscsi_target_ip=${iscsi_target_ip%%[]]*}
# shellcheck disable=SC1087
- v=${v#[[]$iscsi_target_ip[]]:}
+ v=${v#[[]"$iscsi_target_ip"[]]:}
;;
*)
iscsi_target_ip=${v%%[:]*}
- v=${v#$iscsi_target_ip:}
+ v=${v#"$iscsi_target_ip":}
;;
esac
}
ip_to_var() {
- local v=${1}:
+ local v="${1}":
local i
set --
while [ -n "$v" ]; do
i="${v%%\]:*}"
i="${i##\[}"
set -- "$@" "$i"
- v=${v#\[$i\]:}
+ v=${v#\["$i"\]:}
else
set -- "$@" "${v%%:*}"
v=${v#*:}
}
route_to_var() {
- local v=${1}:
+ local v="${1}":
local i
set --
while [ -n "$v" ]; do
i="${v%%\]:*}"
i="${i##\[}"
set -- "$@" "$i"
- v=${v#\[$i\]:}
+ v=${v#\["$i"\]:}
else
set -- "$@" "${v%%:*}"
v=${v#*:}
while [ $cnt -lt $timeout ]; do
li=$(ip route show)
- [ -n "$li" ] && [ -z "${li##*$1*}" ] && return 0
+ [ -n "$li" ] && [ -z "${li##*"$1"*}" ] && return 0
sleep 0.1
cnt=$((cnt + 1))
done
done
if [[ $_found ]] && [[ -n $_crts ]]; then
for _crt in $_crts; do
- if ! inst "${_crt#$dracutsysrootdir}"; then
+ if ! inst "${_crt#"$dracutsysrootdir"}"; then
dwarn "Couldn't install '$_crt' SSL CA cert bundle; HTTPS might not work."
continue
fi
# install everything in it
mkdir -p -- "${initdir}/${_p11root}"
if ! $DRACUT_CP -L -t "${initdir}/${_p11root}" "${dracutsysrootdir}${_p11root}"/*; then
- dwarn "Couldn't install from p11-kit trust dir '${_p11root#$dracutsysrootdir}'; HTTPS might not work."
+ dwarn "Couldn't install from p11-kit trust dir '${_p11root#"$dracutsysrootdir"}'; HTTPS might not work."
fi
done
done
if [ "$path" = "$p" ]; then
echo "$mnt"
elif str_starts "$path" "$p"; then
- echo "$mnt"/"${path#$p/}"
+ echo "$mnt"/"${path#"$p"/}"
fi
fi
done < /proc/mounts
else
for x in "$dracutsysrootdir"/usr/share/plymouth/themes/{text,details}/*; do
[[ -f $x ]] || continue
- THEME_DIR=$(dirname "${x#$dracutsysrootdir}")
+ THEME_DIR=$(dirname "${x#"$dracutsysrootdir"}")
# shellcheck disable=SC2174
mkdir -m 0755 -p "${initdir}/$THEME_DIR"
- inst_multiple "${x#$dracutsysrootdir}"
+ inst_multiple "${x#"$dracutsysrootdir"}"
done
(
cd "${initdir}"/usr/share/plymouth/themes || exit
# example:
# test_dev -f LABEL="nice label" /some/file1
test_dev() {
- local test_op=$1
+ local test_op="$1"
local dev="$2"
local f="$3"
local ret=1
uuid=${uuid##luks-}
if luksname=$(_cryptgetargsname "$uuid="); then
- luksname="${luksname#$uuid=}"
+ luksname="${luksname#"$uuid"=}"
else
luksname="luks-$uuid"
fi
serialid=${serialid##luks-}
if luksname=$(_cryptgetargsname "$serialid="); then
- luksname="${luksname#$serialid=}"
+ luksname="${luksname#"$serialid"=}"
else
luksname="luks-$serialid"
fi
luksid=${luksid##luks-}
if luksname=$(_cryptgetargsname "$luksid="); then
- luksname="${luksname#$luksid=}"
+ luksname="${luksname#"$luksid"=}"
else
luksname="luks-$luksid"
fi
#!/bin/sh
_remove_dm() {
- local dev=$1
+ local dev="$1"
local s
local devname
_do_dm_shutdown() {
local ret=0
- local final=$1
+ local final="$1"
local dev
info "Disassembling device-mapper devices"
# only activate specified DM RAIDS
for r in $DM_RAIDS; do
for s in $SETS; do
- if [ "${s##$r}" != "$s" ]; then
+ if [ "${s##"$r"}" != "$s" ]; then
info "Activating $s"
dmraid -ay -i -p --rm_partitions "$s" 2>&1 | vinfo
fi
_do_md_shutdown() {
local ret
- local final=$1
+ local final="$1"
info "Waiting for mdraid devices to be clean."
mdadm -vv --wait-clean --scan | vinfo
ret=$?
# ex: ts=8 sw=4 sts=4 et filetype=sh
create_udev_rule() {
- local transport=$1
- local tgtid=$2
- local lun=$3
- local _rule=/etc/udev/rules.d/51-${transport}-lunmask-${tgtid}.rules
+ local transport="$1"
+ local tgtid="$2"
+ local lun="$3"
+ local _rule=/etc/udev/rules.d/51-"${transport}"-lunmask-"${tgtid}".rules
[ -e "${_rule}" ] && return 0
}
generator_mount_rootfs() {
- local _type=$2
- local _flags=$3
+ local _type="$2"
+ local _flags="$3"
local _name
[ -z "$1" ] && return 0
fi
rsyslog_config() {
- local server=$1
+ local server="$1"
shift
- local syslog_template=$1
+ local syslog_template="$1"
shift
- local filters=$*
+ local filters="$*"
local filter=
cat "$syslog_template"
}
fsck_usr() {
- local _dev=$1
- local _fs=$2
- local _fsopts=$3
+ local _dev="$1"
+ local _fs="$2"
+ local _fsopts="$3"
local _fsckoptions
if [ -f "$NEWROOT"/fsckoptions ]; then
# An empty $1 will not be considered matched, even if $2 is * which technically
# matches; as it would match anything, it's not an interesting case.
strglob() {
+ # shellcheck disable=SC2295
[ -n "$1" -a -z "${1##$2}" ]
}
# An empty $1 will not be considered matched, even if $2 is * which technically
# matches; as it would match anything, it's not an interesting case.
strglobin() {
+ # shellcheck disable=SC2295
[ -n "$1" -a -z "${1##*$2*}" ]
}
case "${line}" in
*,${opt}=*,*)
- tmp="${line#*,${opt}=}"
+ tmp="${line#*,"${opt}"=}"
echo "${tmp%%,*}"
return 0
;;
local tmp
while [ -n "$str" -a "$#" -gt 1 ]; do
- tmp="${str%%$sep*}"
+ tmp="${str%%"$sep"*}"
eval "$1='${tmp}'"
str="${str#"$tmp"}"
- str="${str#$sep}"
+ str="${str#"$sep"}"
shift
done
[ -n "$str" -a -n "$1" ] && eval "$1='$str'"
local expected="$3"
local count=0
- while [ "${str#*$ch}" != "${str}" ]; do
- str="${str#*$ch}"
+ while [ "${str#*"$ch"}" != "${str}" ]; do
+ str="${str#*"$ch"}"
count=$((count + 1))
done
debug_off
local _exe
_exe="$(command -v "$1")"
- local _sig=$2
+ local _sig="$2"
local _i
[ -x "$_exe" ] || return 1
for _i in /proc/[0-9]*; do
[ "$i" -ef "$_exe" ] || continue
else
_rl=$(readlink -f "$i")
- [ "${_rl%/$_cmd}" != "$_rl" ] || continue
+ [ "${_rl%/"$_cmd"}" != "$_rl" ] || continue
fi
i=${i%/exe}
echo "${i##/proc/}"
# so dracut rebuild and lsinitrd can work
for file in "$squash_dir"/usr/lib/dracut/*; do
[[ -f $file ]] || continue
- DRACUT_RESOLVE_DEPS=1 dracutsysrootdir="$squash_dir" inst "${file#$squash_dir}"
+ DRACUT_RESOLVE_DEPS=1 dracutsysrootdir="$squash_dir" inst "${file#"$squash_dir"}"
done
# Install required modules and binaries for the squash image init script.
local cnt=0
while [ $cnt -lt 200 ]; do
li=$(ip route show)
- [ -n "$li" ] && [ -z "${li##*$1*}" ] && return 0
+ [ -n "$li" ] && [ -z "${li##*"$1"*}" ] && return 0
sleep 0.1
cnt=$((cnt + 1))
done
local cnt=0
while [ $cnt -lt 200 ]; do
li=$(ip route show)
- [ -n "$li" ] && [ -z "${li##*$1*}" ] && return 0
+ [ -n "$li" ] && [ -z "${li##*"$1"*}" ] && return 0
sleep 0.1
cnt=$((cnt + 1))
done
local cnt=0
while [ $cnt -lt 200 ]; do
li=$(ip route show)
- [ -n "$li" ] && [ -z "${li##*$1*}" ] && return 0
+ [ -n "$li" ] && [ -z "${li##*"$1"*}" ] && return 0
sleep 0.1
cnt=$((cnt + 1))
done
local cnt=0
while [ $cnt -lt 200 ]; do
li=$(ip route show)
- [ -n "$li" ] && [ -z "${li##*$1*}" ] && return 0
+ [ -n "$li" ] && [ -z "${li##*"$1"*}" ] && return 0
sleep 0.1
cnt=$((cnt + 1))
done
local cnt=0
while [ $cnt -lt 200 ]; do
li=$(ip route show)
- [ -n "$li" ] && [ -z "${li##*$1*}" ] && return 0
+ [ -n "$li" ] && [ -z "${li##*"$1"*}" ] && return 0
sleep 0.1
cnt=$((cnt + 1))
done
#!/bin/sh
exec > /dev/console 2>&1
export PATH=/usr/sbin:/usr/bin:/sbin:/bin
-strstr() { [ "${1#*$2*}" != "$1" ]; }
+strstr() { [ "${1#*"$2"*}" != "$1" ]; }
CMDLINE=$(while read -r line; do echo "$line"; done < /proc/cmdline)
export TERM=linux
export PS1='initramfs-test:\w\$ '
local cnt=0
while [ $cnt -lt 200 ]; do
li=$(ip route show)
- [ -n "$li" ] && [ -z "${li##*$1*}" ] && return 0
+ [ -n "$li" ] && [ -z "${li##*"$1"*}" ] && return 0
sleep 0.1
cnt=$((cnt + 1))
done