From 3ab5076d9b18f8ad8ad7b87748875dee19e73c1e Mon Sep 17 00:00:00 2001 From: nathan Date: Tue, 18 Jul 2017 02:20:08 +0200 Subject: [PATCH] Cache getInfo for linux/unix --- src/dorkbox/util/OSUtil.java | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/dorkbox/util/OSUtil.java b/src/dorkbox/util/OSUtil.java index 1970e1f..7f8739f 100644 --- a/src/dorkbox/util/OSUtil.java +++ b/src/dorkbox/util/OSUtil.java @@ -216,6 +216,7 @@ class OSUtil { List releaseFiles = new LinkedList(); int totalLength = 0; + // looking for files like /etc/os-release File file = new File("/etc"); if (file.isDirectory()) { File[] list = file.listFiles(); @@ -292,17 +293,19 @@ class OSUtil { /** * @param id the info ID to check, ie: ubuntu, arch, debian, etc... This is what the OS vendor uses to ID their OS. - * * @return true if this OS is identified as the specified ID. */ + private static String info = null; public static boolean getInfo(String id) { - String output = getInfo(); + if (info == null) { + info = getInfo(); + } // ID=linuxmint/fedora/arch/ubuntu/etc - return output.contains("ID=" + id +"\n"); + return info.contains("ID=" + id +"\n"); } - private static volatile Boolean isArch = null; + private static Boolean isArch = null; public static boolean isArch() { if (isArch == null) { @@ -311,7 +314,7 @@ class OSUtil { return isArch; } - private static volatile Boolean isDebian = null; + private static Boolean isDebian = null; public static boolean isDebian() { if (isDebian == null) { @@ -320,7 +323,7 @@ class OSUtil { return isDebian; } - private static volatile Boolean isElementaryOS = null; + private static Boolean isElementaryOS = null; public static boolean isElementaryOS() { if (isElementaryOS == null) { @@ -338,7 +341,7 @@ class OSUtil { return isElementaryOS; } - private static volatile Boolean isFedora = null; + private static Boolean isFedora = null; public static boolean isFedora() { if (isFedora == null) { @@ -347,7 +350,7 @@ class OSUtil { return isFedora; } - private static volatile Boolean isLinuxMint = null; + private static Boolean isLinuxMint = null; public static boolean isLinuxMint() { if (isLinuxMint == null) { @@ -356,7 +359,7 @@ class OSUtil { return isLinuxMint; } - private static volatile Boolean isUbuntu = null; + private static Boolean isUbuntu = null; public static boolean isUbuntu() { if (isUbuntu == null) { @@ -365,6 +368,15 @@ class OSUtil { return isUbuntu; } + private static Boolean isKali = null; + public static + boolean isKali() { + if (isKali == null) { + isKali = getInfo("kali"); + } + return isKali; + } + public static boolean isRoot() { // this means we are running as sudo