summaryrefslogtreecommitdiff
path: root/Sparkles/InstallationInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Sparkles/InstallationInfo.cs')
-rw-r--r--Sparkles/InstallationInfo.cs63
1 files changed, 39 insertions, 24 deletions
diff --git a/Sparkles/InstallationInfo.cs b/Sparkles/InstallationInfo.cs
index 274eddc..c3b47bc 100644
--- a/Sparkles/InstallationInfo.cs
+++ b/Sparkles/InstallationInfo.cs
@@ -22,7 +22,7 @@ namespace Sparkles {
public enum OS {
Unknown,
- Mac,
+ macOS,
Windows,
Ubuntu,
GNOME
@@ -43,13 +43,13 @@ namespace Sparkles {
return operating_system;
}
- var uname = new Command ("uname", "-a", false);
+ var uname = new Command ("uname", "-a", write_output: false);
string output = uname.StartAndReadStandardOutput ();
// Environment.OSVersion.Platform.PlatformID.MacOSX is broken in Mono
// for historical reasons, so check manually
if (output.StartsWith ("Darwin", StringComparison.InvariantCulture)) {
- operating_system = OS.Mac;
+ operating_system = OS.macOS;
} else if (output.Contains ("Ubuntu")) {
operating_system = OS.Ubuntu;
@@ -63,29 +63,37 @@ namespace Sparkles {
}
- public static string MacOSVersion ()
- {
- var uname = new Command ("sw_vers", "-productVersion", false);
- string output = uname.StartAndReadStandardOutput ();
- string version = output;
-
- // Parse the version number between the periods (e.g. "10.12.1" -> 12)
- output = output.Substring (output.IndexOf (".") + 1);
- output = output.Substring (0, output.LastIndexOf ("."));
-
- string release = "Unreleased Version";
+ public static string OperatingSystemVersion {
+ get {
+ if (OperatingSystem == OS.macOS) {
+ var uname = new Command ("sw_vers", "-productVersion", write_output: false);
+ string output = uname.StartAndReadStandardOutput ();
+ string version = output;
+
+ // Parse the version number between the periods (e.g. "10.12.1" -> 12)
+ output = output.Substring (output.IndexOf (".") + 1);
+ if (output.LastIndexOf (".") != -1) {
+ output = output.Substring (0, output.LastIndexOf ("."));
+ }
+ string release = "Unreleased Version";
+
+ switch (int.Parse (output)) {
+ case 7: release = "Lion"; break;
+ case 8: release = "Mountain Lion"; break;
+ case 9: release = "Mavericks"; break;
+ case 10: release = "Yosemite"; break;
+ case 11: release = "El Capitan"; break;
+ case 12: release = "Sierra"; break;
+ case 13: release = "High Sierra"; break;
+ case 14: release = "Mojave"; break;
+ }
+
+ return string.Format ("{0} ({1})", version, release);
+ }
- switch (int.Parse (output)) {
- case 7: release = "Lion"; break;
- case 8: release = "Mountain Lion"; break;
- case 9: release = "Mavericks"; break;
- case 10: release = "Yosemite"; break;
- case 11: release = "El Capitan"; break;
- case 12: release = "Sierra"; break;
- case 13: release = "High Sierra"; break;
+ string os_version = Environment.OSVersion.ToString ();
+ return string.Format ("({0})", os_version.Replace ("Unix", "Linux"));
}
-
- return string.Format ("macOS {0} ({1})", version, release);
}
@@ -95,5 +103,12 @@ namespace Sparkles {
return version.Substring (0, version.Length - 2);
}
}
+
+
+ public static bool IsFlatpak {
+ get {
+ return Directory.StartsWith ("/app", StringComparison.InvariantCulture);
+ }
+ }
}
}