diff mbox series

[1/1] install-dep: Use command -v instead of which

Message ID 20210920152505.9423-1-pvorel@suse.cz (mailing list archive)
State New
Headers show
Series [1/1] install-dep: Use command -v instead of which | expand

Commit Message

Petr Vorel Sept. 20, 2021, 3:25 p.m. UTC
`command -v' is shell builtin required by POSIX [1] and supported on all
common shells (bash, zsh, dash, busybox sh, mksh). `which' utility is not
presented on some containers (e.g. Fedora, openSUSE), also going to be
removed from future Debian versions.

Also remove stderr redirection to /dev/null as it's unnecessary when
using 'command': POSIX says "no output shall be written" if the command
isn't found.

[1] https://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html
[2] https://salsa.debian.org/debian/debianutils/-/commit/3a8dd10b4502f7bae8fc6973c13ce23fc9da7efb

Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
 install-dep | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Petr Vorel Sept. 20, 2021, 3:29 p.m. UTC | #1
> `command -v' is shell builtin required by POSIX [1] and supported on all
> common shells (bash, zsh, dash, busybox sh, mksh). `which' utility is not
> presented on some containers (e.g. Fedora, openSUSE), also going to be
> removed from future Debian versions.

> Also remove stderr redirection to /dev/null as it's unnecessary when
> using 'command': POSIX says "no output shall be written" if the command
> isn't found.
nit: [2] missing at the end of this paragraph.

Kind regards,
Petr

> [1] https://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html
> [2] https://salsa.debian.org/debian/debianutils/-/commit/3a8dd10b4502f7bae8fc6973c13ce23fc9da7efb

> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
>  install-dep | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)

> diff --git a/install-dep b/install-dep
> index 621618fe..4698d44a 100755
> --- a/install-dep
> +++ b/install-dep
> @@ -2,20 +2,20 @@
>  #install dependencies for compiling from source code

>  #RHEL/Fedora/CentOS-Stream/Rocky
> -which dnf &>/dev/null || which yum &>/dev/null && {
> +command -v dnf >/dev/null || command -v yum >/dev/null && {
>  	yum install -y automake libtool make gcc rpcgen libtirpc-devel libevent-devel sqlite-devel device-mapper-devel \
>  		libblkid-devel krb5-devel libuuid-devel
>  }

>  #Debian/ubuntu
> -which apt &>/dev/null && {
> +command -v apt >/dev/null && {
>  	apt install -o APT::Install-Suggests=0 -o APT::Install-Recommends=0 --ignore-missing -y \
>  		autotools-dev automake make libtool pkg-config libtirpc-dev libevent-dev libsqlite3-dev \
>  		libdevmapper-dev libblkid-dev libkrb5-dev libkeyutils-dev uuid-dev
>  }

>  #openSUSE Leap
> -which zypper &>/dev/null && {
> +command -v zypper >/dev/null && {
>  	zypper in --no-recommends -y automake libtool make gcc rpcgen libtirpc-devel libevent-devel sqlite-devel \
>  		device-mapper-devel libblkid-devel krb5-devel libuuid-devel
>  }
Steve Dickson Sept. 23, 2021, 4:36 p.m. UTC | #2
On 9/20/21 11:25 AM, Petr Vorel wrote:
> `command -v' is shell builtin required by POSIX [1] and supported on all
> common shells (bash, zsh, dash, busybox sh, mksh). `which' utility is not
> presented on some containers (e.g. Fedora, openSUSE), also going to be
> removed from future Debian versions.
> 
> Also remove stderr redirection to /dev/null as it's unnecessary when
> using 'command': POSIX says "no output shall be written" if the command
> isn't found.
> 
> [1] https://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html
> [2] https://salsa.debian.org/debian/debianutils/-/commit/3a8dd10b4502f7bae8fc6973c13ce23fc9da7efb
> 
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
Committed... (tag: nfs-utils-2-5-5-rc3)

steved.
> ---
>   install-dep | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/install-dep b/install-dep
> index 621618fe..4698d44a 100755
> --- a/install-dep
> +++ b/install-dep
> @@ -2,20 +2,20 @@
>   #install dependencies for compiling from source code
>   
>   #RHEL/Fedora/CentOS-Stream/Rocky
> -which dnf &>/dev/null || which yum &>/dev/null && {
> +command -v dnf >/dev/null || command -v yum >/dev/null && {
>   	yum install -y automake libtool make gcc rpcgen libtirpc-devel libevent-devel sqlite-devel device-mapper-devel \
>   		libblkid-devel krb5-devel libuuid-devel
>   }
>   
>   #Debian/ubuntu
> -which apt &>/dev/null && {
> +command -v apt >/dev/null && {
>   	apt install -o APT::Install-Suggests=0 -o APT::Install-Recommends=0 --ignore-missing -y \
>   		autotools-dev automake make libtool pkg-config libtirpc-dev libevent-dev libsqlite3-dev \
>   		libdevmapper-dev libblkid-dev libkrb5-dev libkeyutils-dev uuid-dev
>   }
>   
>   #openSUSE Leap
> -which zypper &>/dev/null && {
> +command -v zypper >/dev/null && {
>   	zypper in --no-recommends -y automake libtool make gcc rpcgen libtirpc-devel libevent-devel sqlite-devel \
>   		device-mapper-devel libblkid-devel krb5-devel libuuid-devel
>   }
>
diff mbox series

Patch

diff --git a/install-dep b/install-dep
index 621618fe..4698d44a 100755
--- a/install-dep
+++ b/install-dep
@@ -2,20 +2,20 @@ 
 #install dependencies for compiling from source code
 
 #RHEL/Fedora/CentOS-Stream/Rocky
-which dnf &>/dev/null || which yum &>/dev/null && {
+command -v dnf >/dev/null || command -v yum >/dev/null && {
 	yum install -y automake libtool make gcc rpcgen libtirpc-devel libevent-devel sqlite-devel device-mapper-devel \
 		libblkid-devel krb5-devel libuuid-devel
 }
 
 #Debian/ubuntu
-which apt &>/dev/null && {
+command -v apt >/dev/null && {
 	apt install -o APT::Install-Suggests=0 -o APT::Install-Recommends=0 --ignore-missing -y \
 		autotools-dev automake make libtool pkg-config libtirpc-dev libevent-dev libsqlite3-dev \
 		libdevmapper-dev libblkid-dev libkrb5-dev libkeyutils-dev uuid-dev
 }
 
 #openSUSE Leap
-which zypper &>/dev/null && {
+command -v zypper >/dev/null && {
 	zypper in --no-recommends -y automake libtool make gcc rpcgen libtirpc-devel libevent-devel sqlite-devel \
 		device-mapper-devel libblkid-devel krb5-devel libuuid-devel
 }