New folder that will hold operating system subclasses

This commit is contained in:
Mario Melara 2016-02-22 14:53:55 -08:00
parent 22bf4bc080
commit 1367ccab93
3 changed files with 70 additions and 0 deletions

View file

@ -0,0 +1,25 @@
import platform as py_platform
import spack
from spack.architecture import Platform, OperatingSystem
class LinuxDistro(OperatingSystem):
""" This class will represent the autodetected operating system
for a Linux System. Since there are many different flavors of
Linux, this class will attempt to encompass them all through
autodetection using the python module platform and the method
platform.dist()
"""
def __init__(self):
def detect_operating_system():
name = py_platform.dist()[0]
version = py_platform.dist()[1]
return name, version
name, version = detect_operating_system()
super(LinuxDistro, self).__init__(name, version)
@property
def compiler_strategy(self):
return "PATH"

View file

@ -0,0 +1,45 @@
""" This class represents the MAC_OSX operating system. This will be auto
detected using the python platform.mac_ver. The MAC_OSX platform
will be represented using the major version operating system name, i.e
el capitan, yosemite...etc.
"""
import spack
import os
import platform as py_platform
from spack.architecture import Platform, OperatingSystem
class MacOSX(OperatingSystem):
def __init__(self):
""" Autodetects the mac version from a dictionary. Goes back as
far as 10.6 snowleopard. If the user has an older mac then
the version will just be a generic mac_os.
"""
def get_mac_release():
mac_releases = {'10.6': "snowleopard",
"10.7": "lion",
"10.8": "mountainlion",
"10.9": "mavericks",
"10.10": "yosemite",
"10.11": "elcapitan"}
mac_ver = py_platform.mac_ver()[0][:-2]
try:
name = mac_releases[mac_ver]
return name, mac_ver
except KeyError:
name = "mac_os"
return name, mac_ver
name, version = get_mac_release()
super(MacOSX, self).__init__(name, version)
@property
def compiler_strategy(self):
return "PATH"