"Represents the operating system on which the current process is running." see (`value process`, `value runtime`, `value language`, `value system`) tagged("Environment") shared native object operatingSystem { "Returns the name of the operating system this process is running on: `linux`, `mac`, `unix`, `windows`, or `other`." shared native String name { if (exists os = process.propertyValue("os.name") ?.lowercased) { if ("win" in os) { return "windows"; } else if ("mac" in os) { return "mac"; } else if ("linux" in os) { return "linux"; } else if ("nix" in os || "freebsd" in os || "openbsd" in os || "netbsd" in os || "sunos" in os) { return "unix"; } } return "other"; } "Returns the version of the operating system this process is running on or `Unknown` if it was not possible to retrieve that information. The result is completely dependent on the underlying system." shared native String version => "Unknown"; "The line ending character sequence on this platform." shared native String newline; "The character used on this platform to separate the folder/file elements of a path." shared native String fileSeparator { assert (exists result = process.propertyValue("file.separator")); return result; } "The character used on this platform to use as a separator between several paths in a list of paths." shared native String pathSeparator { assert (exists result = process.propertyValue("path.separator")); return result; } string => "operating system [``name`` / ``version``]"; } shared native("jvm") object operatingSystem { import java.lang { System } shared native("jvm") String version => process.propertyValue("os.version") else "Unknown"; shared native("jvm") String newline => System.lineSeparator(); } shared native("js") object operatingSystem { shared native("js") String newline { assert (exists result = process.propertyValue("line.separator")); return result; } }