aboutsummaryrefslogtreecommitdiffstats
path: root/machammer/functions.py
diff options
context:
space:
mode:
Diffstat (limited to 'machammer/functions.py')
-rw-r--r--machammer/functions.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/machammer/functions.py b/machammer/functions.py
index fa4fc63..326918d 100644
--- a/machammer/functions.py
+++ b/machammer/functions.py
@@ -293,3 +293,44 @@ def create_os_media(src, dst):
def log(msg):
logging.debug(msg)
+
+
+def os_version():
+ class OsVersion(object):
+ def __init__(self):
+ out = {}
+ for _ in check_output('/usr/bin/sw_vers').decode().split("\n"):
+ (k, v) = _.replace(':', '').split("\t")
+ out[k] = v
+
+ self.name = out['ProductName']
+ self.build = out['BuildVersion']
+ self.version = out['ProductVersion']
+ self._version = self.pad(self.version)
+
+ def pad(self, v):
+ return int(str(v).replace('.', '').ljust(8, '0'))
+
+ def __repr__(self):
+ return '%s (%s)' % (self.version, self.build)
+
+ def __eq__(self, v):
+ return self.version == v
+
+ def __ne__(self, v):
+ return self.version != v
+
+ def __lt__(self, v):
+ return self._version < self.pad(v)
+
+ def __gt__(self, v):
+ print(self._version, self.pad(v))
+ return self._version > self.pad(v)
+
+ def __ge__(self, v):
+ return self._version >= self.pad(v)
+
+ def __str__(self):
+ return self.version
+
+ return OsVersion()