38 return array_unique( array_merge(
39 [
'/usr/bin',
'/bin',
'/usr/local/bin',
'/opt/csw/bin',
40 '/usr/gnu/bin',
'/usr/sfw/bin',
'/sw/bin',
'/opt/local/bin' ],
41 explode( PATH_SEPARATOR, getenv(
'PATH' ) )
65 Wikimedia\suppressWarnings();
66 $file_exists = is_executable(
$command );
67 Wikimedia\restoreWarnings();
70 if ( !$versionInfo ) {
74 $output = Shell::command(
$command, $versionInfo[0] )
75 ->includeStderr()->execute()->getStdout();
76 if ( strstr( $output, $versionInfo[1] ) !==
false ) {
97 if ( Shell::isDisabled() ) {
102 $paths = self::getPossibleBinPaths();
103 foreach ( (array)$names as $name ) {
104 foreach ( $paths as
$path ) {
105 $exe = self::findExecutable(
$path, $name, $versionInfo );
106 if ( $exe !==
false ) {
Utility class to find executables in likely places.
static getPossibleBinPaths()
Get an array of likely places we can find executables.
static findExecutable( $path, $name, $versionInfo=false)
Search a path for any of the given executable names.
static findInDefaultPaths( $names, $versionInfo=false)
Same as locateExecutable(), but checks in getPossibleBinPaths() by default.