[PATCH] treewide: replace `which` with `command -v`
Adrian Schmutzler
mail at adrianschmutzler.de
Wed Aug 12 05:15:54 EDT 2020
> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces at lists.openwrt.org]
> On Behalf Of Paul Spooren
> Sent: Samstag, 8. August 2020 00:55
> To: openwrt-devel at lists.openwrt.org
> Cc: Paul Spooren <mail at aparcar.org>
> Subject: [PATCH] treewide: replace `which` with `command -v`
I've merged the v2 patch and added a few cases in zram-swap.
During checking the patch, I found that there also are additional cases in the following locations that need to be addressed (I didn't touch those so far):
include/cmake.mk:17: cmake_tool=$(shell which $(1))
include/prereq.mk:109: which "$$$$$$$${cmd%% *}")"; \
include/prereq.mk:55: which $(1)
Best
Adrian
>
> Fix shellcheck SC2230
> > which is non-standard. Use builtin 'command -v' instead.
>
> Once applied to everything concerning OpenWrt we can disable the busybox
> feature `which` and save 3.8kB.
>
> Signed-off-by: Paul Spooren <mail at aparcar.org>
> ---
> include/rootfs.mk | 6 +++---
> package/base-files/files/lib/upgrade/stage2 | 2 +-
> .../kernel/broadcom-wl/files/lib/wifi/broadcom.sh | 2 +-
> scripts/ipkg-build | 12 ++++++------
> 4 files changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/include/rootfs.mk b/include/rootfs.mk index
> b6775c7e15..18ada3cd43 100644
> --- a/include/rootfs.mk
> +++ b/include/rootfs.mk
> @@ -69,7 +69,7 @@ define prepare_rootfs
> @( \
> cd $(1); \
> for script in ./usr/lib/opkg/info/*.postinst; do \
> - IPKG_INSTROOT=$(1) $$(which bash) $$script; \
> + IPKG_INSTROOT=$(1) $$(command -v bash) $$script;
> \
> ret=$$?; \
> if [ $$ret -ne 0 ]; then \
> 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 \
> grep '#!/bin/sh /etc/rc.common' $$script >/dev/null
> || continue; \
> 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); \
> 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); \
> fi; \
> done || true \
> diff --git a/package/base-files/files/lib/upgrade/stage2 b/package/base-
> files/files/lib/upgrade/stage2
> index dbb33e8958..a4fef42134 100755
> --- a/package/base-files/files/lib/upgrade/stage2
> +++ b/package/base-files/files/lib/upgrade/stage2
> @@ -45,7 +45,7 @@ switch_to_ramfs() {
> snapshot snapshot_tool
> \
> $RAMFS_COPY_BIN
> do
> - local file="$(which "$binary" 2>/dev/null)"
> + local file="$(command -v "$binary" 2>/dev/null)"
> [ -n "$file" ] && install_bin "$file"
> 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 diff --git a/package/kernel/broadcom-
> wl/files/lib/wifi/broadcom.sh b/package/kernel/broadcom-
> wl/files/lib/wifi/broadcom.sh
> index 33447341b2..352c365f27 100644
> --- a/package/kernel/broadcom-wl/files/lib/wifi/broadcom.sh
> +++ b/package/kernel/broadcom-wl/files/lib/wifi/broadcom.sh
> @@ -223,7 +223,7 @@ enable_broadcom() {
> }
>
> local _c=0
> - local nas="$(which nas)"
> + local nas="$(command -v nas)"
> local if_pre_up if_up nas_cmd
> local vif vif_pre_up vif_post_up vif_do_up vif_txpower
> local bssmax=$(wlc ifname "$device" bssmax) diff --git a/scripts/ipkg-
> build b/scripts/ipkg-build index 21127f3391..6e027bc546 100755
> --- a/scripts/ipkg-build
> +++ b/scripts/ipkg-build
> @@ -10,10 +10,10 @@
> set -e
>
> version=1.0
> -FIND="$(which find)"
> -FIND="${FIND:-$(which gfind)}"
> -TAR="${TAR:-$(which tar)}"
> -GZIP="$(which gzip)"
> +FIND="$(command -v find)"
> +FIND="${FIND:-$(command -v gfind)}"
> +TAR="${TAR:-$(command -v tar)}"
> +GZIP="$(command -v gzip)"
>
> # try to use fixed source epoch
> if [ -n "$SOURCE_DATE_EPOCH" ]; then
> @@ -21,10 +21,10 @@ if [ -n "$SOURCE_DATE_EPOCH" ]; then
>
> # look up date of last commit
> elif [ -d "$TOPDIR/.git" ]; then
> - GIT="$(which git)"
> + GIT="$(command -v git)"
> TIMESTAMP=$(cd $TOPDIR; $GIT log -1 -s --format=%ci) elif [ -d
> "$TOPDIR/.svn" ]; then
> - SVN="$(which svn)"
> + SVN="$(command -v svn)"
> TIMESTAMP=$($SVN info "$TOPDIR" | sed -n "s/^Last Changed Date:
> \(.*\)/\1/p") else
> TIMESTAMP=$(date)
> --
> 2.25.1
>
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: openpgp-digital-signature.asc
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.openwrt.org/pipermail/openwrt-devel/attachments/20200812/7027de05/attachment-0001.sig>
More information about the openwrt-devel
mailing list