15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 import java.io.File;
25 import java.util.HashMap;
26 import java.util.Map;
27
28 /**
29 * Utility class for finding the command on the current system
30 */
31 public class UnixCommands {
32
33 public static final boolean isUnix = ! System.getProperty("os.name").startsWith("Windows");
34 public static final boolean isLinux = System.getProperty("os.name").startsWith("Linux");
35 public static final boolean isSunOS = System.getProperty("os.name").equals("SunOS");
36
37 private static final String[] paths = {"/bin", "/usr/bin"};
38
39 private static Map<String,String> nameToCommand = new HashMap<>(16);
40
41 /**
42 * Throws Error unless every listed command is available on the system
43 */
44 public static void ensureCommandsAvailable(String... commands) {
45 for (String command : commands) {
46 if (findCommand(command) == null) {
47 throw new Error("Command '" + command + "' not found; bailing out");
48 }
49 }
50 }
51
52 /**
53 * If the path to the command could be found, returns the command with the full path.
54 * Otherwise, returns null.
55 */
|
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 import java.io.File;
25 import java.util.HashMap;
26 import java.util.Map;
27
28 /**
29 * Utility class for finding the command on the current system
30 */
31 public class UnixCommands {
32
33 public static final boolean isUnix = ! System.getProperty("os.name").startsWith("Windows");
34 public static final boolean isLinux = System.getProperty("os.name").startsWith("Linux");
35
36 private static final String[] paths = {"/bin", "/usr/bin"};
37
38 private static Map<String,String> nameToCommand = new HashMap<>(16);
39
40 /**
41 * Throws Error unless every listed command is available on the system
42 */
43 public static void ensureCommandsAvailable(String... commands) {
44 for (String command : commands) {
45 if (findCommand(command) == null) {
46 throw new Error("Command '" + command + "' not found; bailing out");
47 }
48 }
49 }
50
51 /**
52 * If the path to the command could be found, returns the command with the full path.
53 * Otherwise, returns null.
54 */
|