--- /dev/null
+/*******************************************************************************\r
+ * Copyright (c) 2010 Association for Decentralized Information Management\r
+ * in Industry THTH ry.\r
+ * All rights reserved. This program and the accompanying materials\r
+ * are made available under the terms of the Eclipse Public License v1.0\r
+ * which accompanies this distribution, and is available at\r
+ * http://www.eclipse.org/legal/epl-v10.html\r
+ *\r
+ * Contributors:\r
+ * VTT Technical Research Centre of Finland - initial API and implementation\r
+ *******************************************************************************/\r
+package org.simantics.db.procore.server.environment;\r
+\r
+\r
+/**\r
+ * @author Tuukka Lehtonen\r
+ */\r
+public final class ExecutionEnvironment {\r
+\r
+ public final OSType os;\r
+ public final ARCHType arch;\r
+\r
+ private ExecutionEnvironment(OSType os, ARCHType arch) {\r
+ this.os = os;\r
+ this.arch = arch;\r
+ }\r
+\r
+ public static ExecutionEnvironment calculate() {\r
+ return new ExecutionEnvironment(calculateOS(), calculateArch());\r
+ }\r
+\r
+ public static ARCHType calculateArch() {\r
+ String osArch = System.getProperty("os.arch", "");\r
+ osArch = osArch.toLowerCase();\r
+ if (osArch.equals("i386") || osArch.equals("i586") || osArch.equals("i686") || osArch.equals("x86"))\r
+ return ARCHType.X86;\r
+ if (osArch.startsWith("amd64") || osArch.startsWith("x86_64"))\r
+ return ARCHType.X86_64;\r
+ if (osArch.equals("ppc"))\r
+ return ARCHType.PPC;\r
+ if (osArch.startsWith("ppc"))\r
+ return ARCHType.PPC_64;\r
+ if (osArch.startsWith("sparc"))\r
+ return ARCHType.SPARC;\r
+ return ARCHType.UNKNOWN;\r
+ }\r
+\r
+ public static OSType calculateOS() {\r
+ String osName = System.getProperty("os.name", "");\r
+ osName = osName.toLowerCase();\r
+ if (osName.startsWith("mac os x"))\r
+ return OSType.APPLE;\r
+ if (osName.startsWith("windows"))\r
+ return OSType.WINDOWS;\r
+ if (osName.startsWith("linux"))\r
+ return OSType.LINUX;\r
+ if (osName.startsWith("sun"))\r
+ return OSType.SUN;\r
+ return OSType.UNKNOWN;\r
+ }\r
+\r
+}\r