summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2015-11-04 07:46:17 -0800
committerTodd Gamblin <tgamblin@llnl.gov>2015-11-04 07:46:17 -0800
commit339da1da3d7f034595344f72f5d95e3fea0087f5 (patch)
tree870cb27edd9c216341f19614ba6a453143a379a9 /lib
parentaec50722fc065450c94a01ec02597974e1ca8b0f (diff)
downloadspack-339da1da3d7f034595344f72f5d95e3fea0087f5.tar.gz
spack-339da1da3d7f034595344f72f5d95e3fea0087f5.tar.bz2
spack-339da1da3d7f034595344f72f5d95e3fea0087f5.tar.xz
spack-339da1da3d7f034595344f72f5d95e3fea0087f5.zip
Make architecture reflect OS *and* machine. Use Python's platform module.
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/architecture.py19
1 files changed, 8 insertions, 11 deletions
diff --git a/lib/spack/spack/architecture.py b/lib/spack/spack/architecture.py
index 05ac5d6f35..6c874e30be 100644
--- a/lib/spack/spack/architecture.py
+++ b/lib/spack/spack/architecture.py
@@ -23,7 +23,8 @@
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import os
-import subprocess
+import re
+import platform
from llnl.util.lang import memoized
@@ -58,15 +59,11 @@ def get_sys_type_from_environment():
return os.environ.get('SYS_TYPE')
-def get_sys_type_from_uname():
- """Return the architecture from uname."""
- try:
- arch_proc = subprocess.Popen(['uname', '-i'],
- stdout=subprocess.PIPE)
- arch, _ = arch_proc.communicate()
- return arch.strip()
- except:
- return None
+def get_sys_type_from_platform():
+ """Return the architecture from Python's platform module."""
+ sys_type = platform.system() + '-' + platform.machine()
+ sys_type = re.sub(r'[^\w-]', '_', sys_type)
+ return sys_type.lower()
@memoized
@@ -74,7 +71,7 @@ def sys_type():
"""Returns a SysType for the current machine."""
methods = [get_sys_type_from_spack_globals,
get_sys_type_from_environment,
- get_sys_type_from_uname]
+ get_sys_type_from_platform]
# search for a method that doesn't return None
sys_type = None