Skip to content

Commit

Permalink
Refactor pandoc download code
Browse files Browse the repository at this point in the history
Also fixing downloads on macOS

(Closes #1429)

Co-authored-by: Michael Lasevich <michael.lasevich@bhnetwork.com>
Co-authored-by: Alexander Schwartz <alexander.schwartz@gmx.net>
  • Loading branch information
3 people authored Sep 20, 2023
1 parent 60ee1a5 commit 79cd0d4
Show file tree
Hide file tree
Showing 6 changed files with 237 additions and 157 deletions.
5 changes: 4 additions & 1 deletion config/checkstyle/checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,10 @@
<!--
<module name="InterfaceIsType"/>
-->
<module name="VisibilityModifier"/>
<module name="VisibilityModifier">
<property name="allowPublicImmutableFields" value="true"/>
<property name="immutableClassCanonicalNames" value="java.lang.String, java.lang.Integer, java.lang.Byte, java.lang.Character, java.lang.Short, java.lang.Boolean, java.lang.Long, java.lang.Double, java.lang.Float, java.lang.StackTraceElement, java.math.BigInteger, java.math.BigDecimal, java.io.File, java.util.Locale, java.util.UUID, java.net.URL, java.net.URI, java.net.Inet4Address, java.net.Inet6Address, java.net.InetSocketAddress, org.asciidoc.intellij.arch.OS, org.asciidoc.intellij.arch.Arch" />
</module>

<!-- Miscellaneous other checks. -->
<!-- See http://checkstyle.sf.net/config_misc.html -->
Expand Down
16 changes: 16 additions & 0 deletions src/main/java/org/asciidoc/intellij/arch/Arch.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.asciidoc.intellij.arch;

import java.util.Locale;

public enum Arch {
ARM,
INTEL;

static Arch identify() {
String osArch = System.getProperty("os.arch").toLowerCase(Locale.ROOT);
if (osArch.contains("arm") || osArch.contains("aarch64")) {
return Arch.ARM;
}
return Arch.INTEL;
}
}
28 changes: 28 additions & 0 deletions src/main/java/org/asciidoc/intellij/arch/OS.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package org.asciidoc.intellij.arch;

import com.intellij.openapi.util.SystemInfoRt;

public enum OS {
LINUX(SystemInfoRt.isLinux),
MAC(SystemInfoRt.isMac),
WINDOWS(SystemInfoRt.isWindows),
OTHER(true);

public final boolean active;

OS(boolean active) {
this.active = active;
}

/**
* Get active OS.
*/
public static OS identfy() {
for (OS os : OS.values()) {
if (os.active) {
return os;
}
}
return OS.OTHER;
}
}
30 changes: 30 additions & 0 deletions src/main/java/org/asciidoc/intellij/arch/Platform.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package org.asciidoc.intellij.arch;

public enum Platform {
LINUX_ARM(OS.LINUX, Arch.ARM, "arm64"),
LINUX_INTEL_64(OS.LINUX, Arch.INTEL, "amd64"),
WINDOWS_INTEL_64(OS.WINDOWS, Arch.INTEL, "x86_64"),
MAC_ARM64(OS.MAC, Arch.ARM, "arm64"),
MAC_INTEL_64(OS.MAC, Arch.INTEL, "x86_64"),
OTHER(null, null, "");
public final String archName;
public final OS os;
public final Arch arch;

Platform(OS os, Arch arch, String archName) {
this.arch = arch;
this.os = os;
this.archName = archName;
}

public static Platform identify() {
OS os = OS.identfy();
Arch arch = Arch.identify();
for (Platform platform : Platform.values()) {
if ((platform.os == os) && (platform.arch == arch)) {
return platform;
}
}
return Platform.OTHER;
}
}
Loading

0 comments on commit 79cd0d4

Please sign in to comment.