xerial / sbt-pack

A sbt plugin for creating distributable Scala packages.
496 stars 76 forks source link

feature: Use POSIX compliant `command -v` instead of `which` #498

Closed KevinAtSesam closed 5 months ago

KevinAtSesam commented 5 months ago

This removes the which package dependency, allowing Linux containers to run with this additional package. See https://github.com/xerial/sbt-pack/issues/425 where I previously discussed this.

Example:

[kevin@fedora ~]$ which java
~/.sdkman/candidates/java/current/bin/java
[kevin@fedora ~]$ command -v java
/home/kevin/.sdkman/candidates/java/current/bin/java

[kevin@fedora ~]$ which scalac
~/.sdkman/candidates/scala/current/bin/scalac
[kevin@fedora ~]$ command -v scalac
/home/kevin/.sdkman/candidates/scala/current/bin/scalac

[kevin@fedora ~]$ which readlink
/usr/bin/readlink
[kevin@fedora ~]$ command -v readlink
/usr/bin/readlink
[kevin@fedora ~]$ 

Do note that POSIX dictates hard references, no ~/ support.