Carlo Marcelo Arenas Belón <carenas@xxxxxxxxx> writes: > In preparation for a future change that will make perforce installation > optional in macOS, make sure that the check for it is done without > triggering scary looking errors and add a user friendly message instead. > > Only one invocation of type is changed as that is what is only needed > for the expected future use case, and because `type` is recommended in > the CodingGuidelines, so changing that recommendation or a more complex > change has been specifically punted. This may be in the "POSIX may say this but the real world may not work that way" territory. As far as I can tell, "command -v" [*1*] and "type" [*2*] both ought to give diagnostic messages to their standard error stream, and they both should signal an error with non-zero exit status. It may be that the shell implementation you have tried had "command -v" that is less noisy than "type" when given a command that is not installed, but I wonder if the next shell implementation you find has "command -v" that is as noisy and scary as "type", in which case this patch amounts to a no-op. I wonder if "type p4d >/dev/null 2>/dev/null" (or "command -v" with the same) is a more futureproof fix. [References] *1* https://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html *2* https://pubs.opengroup.org/onlinepubs/9699919799/utilities/type.html > Helped-by: Eric Sunshine <sunshine@xxxxxxxxxxxxxx> > Signed-off-by: Carlo Marcelo Arenas Belón <carenas@xxxxxxxxx> > --- > ci/install-dependencies.sh | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh > index dbcebad2fb2..6de20108775 100755 > --- a/ci/install-dependencies.sh > +++ b/ci/install-dependencies.sh > @@ -78,12 +78,14 @@ linux-gcc-default) > ;; > esac > > -if type p4d >/dev/null && type p4 >/dev/null > +if command -v p4d >/dev/null && type p4 >/dev/null > then > echo "$(tput setaf 6)Perforce Server Version$(tput sgr0)" > p4d -V | grep Rev. > echo "$(tput setaf 6)Perforce Client Version$(tput sgr0)" > p4 -V | grep Rev. > +else > + echo "WARNING: perforce wasn't installed, see above for clues why" > fi > if type git-lfs >/dev/null > then