New folder that will hold operating system subclasses
This commit is contained in:
parent
22bf4bc080
commit
1367ccab93
3 changed files with 70 additions and 0 deletions
0
lib/spack/spack/operating_system/__init__.py
Normal file
0
lib/spack/spack/operating_system/__init__.py
Normal file
25
lib/spack/spack/operating_system/linux_distro.py
Normal file
25
lib/spack/spack/operating_system/linux_distro.py
Normal 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"
|
||||||
|
|
45
lib/spack/spack/operating_system/mac_osx.py
Normal file
45
lib/spack/spack/operating_system/mac_osx.py
Normal 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"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue