The os/ShellUtils module
The entire purpose of the ShellUtils
module is to find an
executable in the PATH environment variable.
It can be used to implement functionality usually found in the
*nix which
command-line utility.
For example, to know where autoconf
is hiding, one can do:
import os/ShellUtils
file := ShellUtils findExecutable("autoconf")
If the executable is not found, file
here will be null. Otherwise,
it’ll correspond to the executable first found in the path:
match file {
case null => "autoconf not found"
case => "found: %s" format(file path)
} println()
Cross-platform
Adding the .exe
suffix is not necessary on Windows - it’ll be
added automatically on this platform when searching.
Crucial
findExecutable
can be made to throw an exception in case an
executable is not found, instead of returning null. For this, pass
true
as its second argument:
// if we can't find make, don't even bother
make := ShellUtils findExecutable("make", true)