X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.procore.server.environment%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fprocore%2Fserver%2Fenvironment%2FExecutionEnvironment.java;fp=bundles%2Forg.simantics.db.procore.server.environment%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fprocore%2Fserver%2Fenvironment%2FExecutionEnvironment.java;h=cc55705cfbe122c50eb3d0d0797965241f05cfcd;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.procore.server.environment/src/org/simantics/db/procore/server/environment/ExecutionEnvironment.java b/bundles/org.simantics.db.procore.server.environment/src/org/simantics/db/procore/server/environment/ExecutionEnvironment.java new file mode 100644 index 000000000..cc55705cf --- /dev/null +++ b/bundles/org.simantics.db.procore.server.environment/src/org/simantics/db/procore/server/environment/ExecutionEnvironment.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * Copyright (c) 2010 Association for Decentralized Information Management + * in Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.db.procore.server.environment; + + +/** + * @author Tuukka Lehtonen + */ +public final class ExecutionEnvironment { + + public final OSType os; + public final ARCHType arch; + + private ExecutionEnvironment(OSType os, ARCHType arch) { + this.os = os; + this.arch = arch; + } + + public static ExecutionEnvironment calculate() { + return new ExecutionEnvironment(calculateOS(), calculateArch()); + } + + public static ARCHType calculateArch() { + String osArch = System.getProperty("os.arch", ""); + osArch = osArch.toLowerCase(); + if (osArch.equals("i386") || osArch.equals("i586") || osArch.equals("i686") || osArch.equals("x86")) + return ARCHType.X86; + if (osArch.startsWith("amd64") || osArch.startsWith("x86_64")) + return ARCHType.X86_64; + if (osArch.equals("ppc")) + return ARCHType.PPC; + if (osArch.startsWith("ppc")) + return ARCHType.PPC_64; + if (osArch.startsWith("sparc")) + return ARCHType.SPARC; + return ARCHType.UNKNOWN; + } + + public static OSType calculateOS() { + String osName = System.getProperty("os.name", ""); + osName = osName.toLowerCase(); + if (osName.startsWith("mac os x")) + return OSType.APPLE; + if (osName.startsWith("windows")) + return OSType.WINDOWS; + if (osName.startsWith("linux")) + return OSType.LINUX; + if (osName.startsWith("sun")) + return OSType.SUN; + return OSType.UNKNOWN; + } + +}