From adc851d9f83579f31903007e3ce0af24faceb21b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1?= Date: Sun, 16 May 2021 16:18:30 +0200 Subject: [PATCH] d/zfsutils.zfs.init derivatives: shellcheck, fix header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: John Kennedy Reviewed-by: Brian Behlendorf Signed-off-by: Ahelenia ZiemiaƄska Closes #12042 --- etc/init.d/zfs-import.in | 21 +++++++---------- etc/init.d/zfs-mount.in | 15 +++++------- etc/init.d/zfs-share.in | 6 ++--- etc/init.d/zfs-zed.in | 8 +++---- etc/zfs/zfs-functions.in | 50 ++++++++++++++++------------------------ 5 files changed, 39 insertions(+), 61 deletions(-) diff --git a/etc/init.d/zfs-import.in b/etc/init.d/zfs-import.in index 714cc6c089..6b1b2f2436 100755 --- a/etc/init.d/zfs-import.in +++ b/etc/init.d/zfs-import.in @@ -26,10 +26,8 @@ # # Released under the 2-clause BSD license. # -# The original script that acted as a template for this script came from -# the Debian GNU/Linux kFreeBSD ZFS packages (which did not include a -# licensing stansa) in the commit dated Mar 24, 2011: -# https://github.com/zfsonlinux/pkg-zfs/commit/80a3ae582b59c0250d7912ba794dca9e669e605a +# This script is based on debian/zfsutils.zfs.init from the +# Debian GNU/kFreeBSD zfsutils 8.1-3 package, written by Aurelien Jarno. # Source the common init script . @sysconfdir@/zfs/zfs-functions @@ -56,16 +54,13 @@ do_verbatim_import() # Support function to get a list of all pools, separated with ';' find_pools() { - local CMD="$*" local pools - pools=$($CMD 2> /dev/null | \ + pools=$("$@" 2> /dev/null | \ grep -E "pool:|^[a-zA-Z0-9]" | \ sed 's@.*: @@' | \ sort | \ - while read pool; do \ - echo -n "$pool;" - done) + tr '\n' ';') echo "${pools%%;}" # Return without the last ';'. } @@ -80,7 +75,7 @@ do_import_all_visible() [ -n "$init" ] && rm -f /etc/dfs/sharetab # Just simplify code later on. - if [ -n "$USE_DISK_BY_ID" -a "$USE_DISK_BY_ID" != 'yes' ] + if [ -n "$USE_DISK_BY_ID" ] && [ "$USE_DISK_BY_ID" != 'yes' ] then # It's something, but not 'yes' so it's no good to us. unset USE_DISK_BY_ID @@ -153,7 +148,7 @@ do_import_all_visible() # to something we can use later with the real import(s). We want to # make sure we find all by* dirs, BUT by-vdev should be first (if it # exists). - if [ -n "$USE_DISK_BY_ID" -a -z "$ZPOOL_IMPORT_PATH" ] + if [ -n "$USE_DISK_BY_ID" ] && [ -z "$ZPOOL_IMPORT_PATH" ] then local dirs dirs="$(for dir in $(echo /dev/disk/by-*) @@ -231,7 +226,7 @@ do_import_all_visible() # using the cache file soon and that might succeed. [ ! -f "$ZPOOL_CACHE" ] && zfs_log_end_msg "$RET" - if [ "$r" -gt 0 -a -f "$ZPOOL_CACHE" ] + if [ "$r" -gt 0 ] && [ -f "$ZPOOL_CACHE" ] then # Failed to import without a cache file. Try WITH... if [ -z "$init" ] && check_boolean "$VERBOSE_MOUNT" @@ -254,7 +249,7 @@ do_import_all_visible() [ -n "$init" ] && zfs_log_end_msg "$RET" IFS="$OLD_IFS" - [ -n "$already_imported" -a -z "$available_pools" ] && return 0 + [ -n "$already_imported" ] && [ -z "$available_pools" ] && return 0 return "$RET" } diff --git a/etc/init.d/zfs-mount.in b/etc/init.d/zfs-mount.in index 9b400916f4..cb571faf92 100755 --- a/etc/init.d/zfs-mount.in +++ b/etc/init.d/zfs-mount.in @@ -23,10 +23,8 @@ # # Released under the 2-clause BSD license. # -# The original script that acted as a template for this script came from -# the Debian GNU/Linux kFreeBSD ZFS packages (which did not include a -# licensing stansa) in the commit dated Mar 24, 2011: -# https://github.com/zfsonlinux/pkg-zfs/commit/80a3ae582b59c0250d7912ba794dca9e669e605a +# This script is based on debian/zfsutils.zfs.init from the +# Debian GNU/kFreeBSD zfsutils 8.1-3 package, written by Aurelien Jarno. # Source the common init script . @sysconfdir@/zfs/zfs-functions @@ -34,9 +32,8 @@ # ---------------------------------------------------- chkroot() { - while read line; do - set -- $line - if [ "$2" = "/" ]; then + while read -r _ mp _; do + if [ "$mp" = "/" ]; then return 0 fi done < /proc/self/mounts @@ -65,7 +62,7 @@ do_depend() # Mount all datasets/filesystems do_mount() { - local verbose overlay i mntpt val + local verbose overlay i mntpt check_boolean "$VERBOSE_MOUNT" && verbose=v check_boolean "$DO_OVERLAY_MOUNTS" && overlay=O @@ -83,7 +80,7 @@ do_mount() read_mtab "^/dev/(zd|zvol)" read_fstab "^/dev/(zd|zvol)" - i=0; var=$(eval echo FSTAB_$i) + i=0; var=$(eval echo "FSTAB_$i") while [ -n "$(eval echo "$""$var")" ] do mntpt=$(eval echo "$""$var") diff --git a/etc/init.d/zfs-share.in b/etc/init.d/zfs-share.in index 3256d1d067..ef628fe463 100755 --- a/etc/init.d/zfs-share.in +++ b/etc/init.d/zfs-share.in @@ -22,10 +22,8 @@ # # Released under the 2-clause BSD license. # -# The original script that acted as a template for this script came from -# the Debian GNU/Linux kFreeBSD ZFS packages (which did not include a -# licensing stansa) in the commit dated Mar 24, 2011: -# https://github.com/zfsonlinux/pkg-zfs/commit/80a3ae582b59c0250d7912ba794dca9e669e605a +# This script is based on debian/zfsutils.zfs.init from the +# Debian GNU/kFreeBSD zfsutils 8.1-3 package, written by Aurelien Jarno. # Source the common init script . @sysconfdir@/zfs/zfs-functions diff --git a/etc/init.d/zfs-zed.in b/etc/init.d/zfs-zed.in index 8890a71221..e5550e5000 100755 --- a/etc/init.d/zfs-zed.in +++ b/etc/init.d/zfs-zed.in @@ -21,10 +21,8 @@ # # Released under the 2-clause BSD license. # -# The original script that acted as a template for this script came from -# the Debian GNU/Linux kFreeBSD ZFS packages (which did not include a -# licensing stansa) in the commit dated Mar 24, 2011: -# https://github.com/zfsonlinux/pkg-zfs/commit/80a3ae582b59c0250d7912ba794dca9e669e605a +# This script is based on debian/zfsutils.zfs.init from the +# Debian GNU/kFreeBSD zfsutils 8.1-3 package, written by Aurelien Jarno. # Source the common init script . @sysconfdir@/zfs/zfs-functions @@ -57,7 +55,7 @@ do_start() do_stop() { - local pools RET + local pools check_module_loaded "zfs" || exit 0 zfs_action "Stopping ZFS Event Daemon" zfs_daemon_stop \ diff --git a/etc/zfs/zfs-functions.in b/etc/zfs/zfs-functions.in index dbe131732f..a07cce60d9 100644 --- a/etc/zfs/zfs-functions.in +++ b/etc/zfs/zfs-functions.in @@ -5,10 +5,8 @@ # # Released under the 2-clause BSD license. # -# The original script that acted as a template for this script came from -# the Debian GNU/Linux kFreeBSD ZFS packages (which did not include a -# licensing stansa) in the commit dated Mar 24, 2011: -# https://github.com/zfsonlinux/pkg-zfs/commit/80a3ae582b59c0250d7912ba794dca9e669e605a +# This script is based on debian/zfsutils.zfs.init from the +# Debian GNU/kFreeBSD zfsutils 8.1-3 package, written by Aurelien Jarno. PATH=/sbin:/bin:/usr/bin:/usr/sbin @@ -20,7 +18,7 @@ elif [ -L /etc/init.d/functions.sh ]; then # Gentoo . /etc/init.d/functions.sh elif [ -f /lib/lsb/init-functions ]; then - # LSB, Debian GNU/Linux and derivatives + # LSB, Debian, and derivatives . /lib/lsb/init-functions fi @@ -63,7 +61,7 @@ elif type success > /dev/null 2>&1 ; then echo zfs_set_ifs "$TMP_IFS" } - zfs_log_progress_msg() { echo -n $"$1"; } + zfs_log_progress_msg() { echo -n "$""$1"; } elif type einfo > /dev/null 2>&1 ; then # Gentoo functions zfs_log_begin_msg() { ebegin "$1"; } @@ -146,11 +144,11 @@ zfs_daemon_start() start-stop-daemon --start --quiet --exec "$DAEMON_BIN" -- \ $DAEMON_ARGS || return 2 - # On Debian GNU/Linux, there's a 'sendsigs' script that will + # On Debian, there's a 'sendsigs' script that will # kill basically everything quite early and zed is stopped # much later than that. We don't want zed to be among them, # so add the zed pid to list of pids to ignore. - if [ -f "$PIDFILE" -a -d /run/sendsigs.omit.d ] + if [ -f "$PIDFILE" ] && [ -d /run/sendsigs.omit.d ] then ln -sf "$PIDFILE" /run/sendsigs.omit.d/zed fi @@ -363,7 +361,7 @@ read_mtab() fs=$(printf '%b\n' "$fs") # Set the variable. - eval export MTAB_$mntpnt=\"$fs\" + eval export "MTAB_$mntpnt=\"$fs\"" fi done < /proc/self/mounts } @@ -376,7 +374,7 @@ in_mtab() -e 's,-,,g' -e 's,\.,,g' -e 's, ,,g') local var - var="$(eval echo MTAB_$mntpnt)" + var="$(eval echo "MTAB_$mntpnt")" [ "$(eval echo "$""$var")" != "" ] return "$?" } @@ -385,21 +383,21 @@ in_mtab() read_fstab() { local match="$1" - local i var TMPFILE + local i var # Unset all FSTAB_* variables unset $(env | grep ^FSTAB_ | sed 's,=.*,,') i=0 while read -r fs mntpnt fstype opts; do - echo "$fs" | egrep -qE '^#|^$' && continue - echo "$mntpnt" | egrep -qE '^none|^swap' && continue - echo "$fstype" | egrep -qE '^swap' && continue + echo "$fs" | grep -qE '^#|^$' && continue + echo "$mntpnt" | grep -qE '^none|^swap' && continue + echo "$fstype" | grep -qE '^swap' && continue if echo "$fs $mntpnt $fstype $opts" | grep -qE "$match"; then - eval export FSTAB_dev_$i="$fs" + eval export "FSTAB_dev_$i=$fs" fs=$(printf '%b\n' "$fs" | sed 's,/,_,g') - eval export FSTAB_$i="$mntpnt" + eval export "FSTAB_$i=$mntpnt" i=$((i + 1)) fi @@ -410,7 +408,7 @@ in_fstab() { local var - var="$(eval echo FSTAB_$1)" + var="$(eval echo "FSTAB_$1")" [ "${var}" != "" ] return $? } @@ -418,19 +416,11 @@ in_fstab() is_mounted() { local mntpt="$1" - local line + local mp - mount | \ - while read line; do - if echo "$line" | grep -q " on $mntpt "; then - # returns: - # 0 on unsuccessful match - # 1 on a successful match - return 1 - fi - done + while read -r _ mp _; do + [ "$mp" = "$mntpt" ] && return 0 + done < /proc/self/mounts - # The negation will flip the subshell return result where the default - # return value is 0 when a match is not found. - return $(( !$? )) + return 1 }