X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.init%2Fsrc%2Forg%2Fargeo%2Finit%2Fa2%2FA2Contribution.java;h=9de09cecfe1100271d3291462bdb2c2d2f8f4b92;hb=abf185c93b2a4a415dc60c40ed37e6cc9ee12318;hp=3d33b55e281deb1b48dbc0db97b6e5cc65c3b9b2;hpb=b7d8618ce593bbeca7e311d32a4d98988e27f877;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.init/src/org/argeo/init/a2/A2Contribution.java b/org.argeo.init/src/org/argeo/init/a2/A2Contribution.java index 3d33b55e2..9de09cecf 100644 --- a/org.argeo.init/src/org/argeo/init/a2/A2Contribution.java +++ b/org.argeo.init/src/org/argeo/init/a2/A2Contribution.java @@ -13,6 +13,9 @@ public class A2Contribution implements Comparable { final static String RUNTIME = "runtime"; final static String CLASSPATH = "classpath"; + final static String DEFAULT = "default"; + final static String LIB = "lib"; + private final ProvisioningSource source; private final String id; @@ -30,6 +33,10 @@ public class A2Contribution implements Comparable { // context.contributions.put(id, this); } + public Iterable listComponents(Object filter) { + return components.values(); + } + A2Component getOrAddComponent(String componentId) { if (components.containsKey(componentId)) return components.get(componentId); @@ -81,4 +88,64 @@ public class A2Contribution implements Comparable { } } + static String localOsArchRelativePath() { + return Os.local().toString() + "/" + Arch.local().toString(); + } + + static enum Os { + LINUX, WIN32, MACOSX, UNKOWN; + + @Override + public String toString() { + return name().toLowerCase(); + } + + public static Os local() { + String osStr = System.getProperty("os.name").toLowerCase(); + if (osStr.startsWith("linux")) + return LINUX; + if (osStr.startsWith("win")) + return WIN32; + if (osStr.startsWith("mac")) + return MACOSX; + return UNKOWN; + } + + } + + static enum Arch { + X86_64, AARCH64, X86, POWERPC, UNKOWN; + + @Override + public String toString() { + return name().toLowerCase(); + } + + public static Arch local() { + String archStr = System.getProperty("os.arch").toLowerCase(); + return switch (archStr) { + case "x86_64": + case "amd64": + case "x86-64": { + yield X86_64; + } + case "aarch64": + case "arm64": { + yield AARCH64; + } + case "x86": + case "i386": + case "i686": { + yield X86; + } + case "powerpc": + case "ppc": { + yield POWERPC; + } + default: + yield UNKOWN; + }; + } + } + }