treewide: replace `which` with `command -v`

Fix shellcheck SC2230
> which is non-standard. Use builtin 'command -v' instead.

Using `command -v` is POSIX compliant while `which` is not.  Also to
mention, `command -v` is a shell builtin whereas `which` is a separate
busybox applet.

Once applied to everything concerning OpenWrt we can disable the busybox
feature `which` and save 3.8kB.

Acked-by: Stijn Tintel <stijn@linux-ipv6.be>
Signed-off-by: Paul Spooren <mail@aparcar.org>
[also replace cases in zram-swap]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
master
Paul Spooren 2020-08-09 15:33:37 -10:00 committed by Adrian Schmutzler
parent 4165232c45
commit 1fdf6b745c
5 changed files with 14 additions and 14 deletions

View File

@ -69,7 +69,7 @@ define prepare_rootfs
@( \ @( \
cd $(1); \ cd $(1); \
for script in ./usr/lib/opkg/info/*.postinst; do \ for script in ./usr/lib/opkg/info/*.postinst; do \
IPKG_INSTROOT=$(1) $$(which bash) $$script; \ IPKG_INSTROOT=$(1) $$(command -v bash) $$script; \
ret=$$?; \ ret=$$?; \
if [ $$ret -ne 0 ]; then \ if [ $$ret -ne 0 ]; then \
echo "postinst script $$script has failed with exit code $$ret" >&2; \ echo "postinst script $$script has failed with exit code $$ret" >&2; \
@ -79,10 +79,10 @@ define prepare_rootfs
for script in ./etc/init.d/*; do \ for script in ./etc/init.d/*; do \
grep '#!/bin/sh /etc/rc.common' $$script >/dev/null || continue; \ grep '#!/bin/sh /etc/rc.common' $$script >/dev/null || continue; \
if ! echo " $(3) " | grep -q " $$(basename $$script) "; then \ if ! echo " $(3) " | grep -q " $$(basename $$script) "; then \
IPKG_INSTROOT=$(1) $$(which bash) ./etc/rc.common $$script enable; \ IPKG_INSTROOT=$(1) $$(command -v bash) ./etc/rc.common $$script enable; \
echo "Enabling" $$(basename $$script); \ echo "Enabling" $$(basename $$script); \
else \ else \
IPKG_INSTROOT=$(1) $$(which bash) ./etc/rc.common $$script disable; \ IPKG_INSTROOT=$(1) $$(command -v bash) ./etc/rc.common $$script disable; \
echo "Disabling" $$(basename $$script); \ echo "Disabling" $$(basename $$script); \
fi; \ fi; \
done || true \ done || true \

View File

@ -45,7 +45,7 @@ switch_to_ramfs() {
snapshot snapshot_tool \ snapshot snapshot_tool \
$RAMFS_COPY_BIN $RAMFS_COPY_BIN
do do
local file="$(which "$binary" 2>/dev/null)" local file="$(command -v "$binary" 2>/dev/null)"
[ -n "$file" ] && install_bin "$file" [ -n "$file" ] && install_bin "$file"
done done
install_file /etc/resolv.conf /lib/*.sh /lib/functions/*.sh /lib/upgrade/*.sh /lib/upgrade/do_stage2 /usr/share/libubox/jshn.sh $RAMFS_COPY_DATA install_file /etc/resolv.conf /lib/*.sh /lib/functions/*.sh /lib/upgrade/*.sh /lib/upgrade/do_stage2 /usr/share/libubox/jshn.sh $RAMFS_COPY_DATA

View File

@ -223,7 +223,7 @@ enable_broadcom() {
} }
local _c=0 local _c=0
local nas="$(which nas)" local nas="$(command -v nas)"
local if_pre_up if_up nas_cmd local if_pre_up if_up nas_cmd
local vif vif_pre_up vif_post_up vif_do_up vif_txpower local vif vif_pre_up vif_post_up vif_do_up vif_txpower
local bssmax=$(wlc ifname "$device" bssmax) local bssmax=$(wlc ifname "$device" bssmax)

View File

@ -35,17 +35,17 @@ zram_applicable()
return 1 return 1
} }
which mkswap >/dev/null || { command -v mkswap >/dev/null || {
logger -s -t zram_applicable -p daemon.err "[ERROR] 'mkswap' not installed" logger -s -t zram_applicable -p daemon.err "[ERROR] 'mkswap' not installed"
return 1 return 1
} }
which swapon >/dev/null || { command -v swapon >/dev/null || {
logger -s -t zram_applicable -p daemon.err "[ERROR] 'swapon' not installed" logger -s -t zram_applicable -p daemon.err "[ERROR] 'swapon' not installed"
return 1 return 1
} }
which swapoff >/dev/null || { command -v swapoff >/dev/null || {
logger -s -t zram_applicable -p daemon.err "[ERROR] 'swapoff' not installed" logger -s -t zram_applicable -p daemon.err "[ERROR] 'swapoff' not installed"
return 1 return 1
} }

View File

@ -10,10 +10,10 @@
set -e set -e
version=1.0 version=1.0
FIND="$(which find)" FIND="$(command -v find)"
FIND="${FIND:-$(which gfind)}" FIND="${FIND:-$(command -v gfind)}"
TAR="${TAR:-$(which tar)}" TAR="${TAR:-$(command -v tar)}"
GZIP="$(which gzip)" GZIP="$(command -v gzip)"
# try to use fixed source epoch # try to use fixed source epoch
if [ -n "$SOURCE_DATE_EPOCH" ]; then if [ -n "$SOURCE_DATE_EPOCH" ]; then
@ -21,10 +21,10 @@ if [ -n "$SOURCE_DATE_EPOCH" ]; then
# look up date of last commit # look up date of last commit
elif [ -d "$TOPDIR/.git" ]; then elif [ -d "$TOPDIR/.git" ]; then
GIT="$(which git)" GIT="$(command -v git)"
TIMESTAMP=$(cd $TOPDIR; $GIT log -1 -s --format=%ci) TIMESTAMP=$(cd $TOPDIR; $GIT log -1 -s --format=%ci)
elif [ -d "$TOPDIR/.svn" ]; then elif [ -d "$TOPDIR/.svn" ]; then
SVN="$(which svn)" SVN="$(command -v svn)"
TIMESTAMP=$($SVN info "$TOPDIR" | sed -n "s/^Last Changed Date: \(.*\)/\1/p") TIMESTAMP=$($SVN info "$TOPDIR" | sed -n "s/^Last Changed Date: \(.*\)/\1/p")
else else
TIMESTAMP=$(date) TIMESTAMP=$(date)