aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/fabricmc/loom/util/OperatingSystem.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/fabricmc/loom/util/OperatingSystem.java')
-rw-r--r--src/main/java/net/fabricmc/loom/util/OperatingSystem.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/main/java/net/fabricmc/loom/util/OperatingSystem.java b/src/main/java/net/fabricmc/loom/util/OperatingSystem.java
index 38e2eb4a..9df41edb 100644
--- a/src/main/java/net/fabricmc/loom/util/OperatingSystem.java
+++ b/src/main/java/net/fabricmc/loom/util/OperatingSystem.java
@@ -24,6 +24,11 @@
package net.fabricmc.loom.util;
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.net.StandardProtocolFamily;
+import java.nio.channels.ServerSocketChannel;
+
public class OperatingSystem {
public static String getOS() {
String osName = System.getProperty("os.name").toLowerCase();
@@ -63,4 +68,15 @@ public class OperatingSystem {
// CI seems to be set by most popular CI services
return System.getenv("CI") != null;
}
+
+ // Requires Unix, or Windows 10 17063 or later. See: https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
+ public static boolean isUnixDomainSocketsSupported() {
+ try (ServerSocketChannel serverChannel = ServerSocketChannel.open(StandardProtocolFamily.UNIX)) {
+ return true;
+ } catch (UnsupportedOperationException e) {
+ return false;
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ }
+ }
}