"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;
}
}