[PATCH] treewide: replace `which` with `command -v`
Rosen Penev
rosenp at gmail.com
Sun Aug 9 19:43:20 EDT 2020
On Sun, Aug 9, 2020 at 4:33 PM Stijn Tintel <stijn at linux-ipv6.be> wrote:
>
> On 8/08/2020 01:54, Paul Spooren wrote:
> > 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.
>
> Maybe mention `command -v` is POSIX compliant, and `which` is not, in
> the commit message.
Maybe also mention that command is builtin whereas which is a separate
binary (or applet in busybox terms).
root at OpenWrt:~# busybox which
BusyBox v1.31.1 () multi-call binary.
Usage: which [COMMAND]...
Locate a COMMAND
root at OpenWrt:~# busybox command
command: applet not found
>
> Acked-by: Stijn Tintel <stijn at linux-ipv6.be>
> >
> > 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)
>
>
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list