From 5077a2a343a93c3875b693387a3cfbb3be8395b6 Mon Sep 17 00:00:00 2001
From: Todd Gamblin <tgamblin@llnl.gov>
Date: Wed, 8 Apr 2015 00:22:34 -0700
Subject: Add a DIY stage class.

---
 lib/spack/spack/stage.py | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

(limited to 'lib')

diff --git a/lib/spack/spack/stage.py b/lib/spack/spack/stage.py
index 84454c9d2c..d451743508 100644
--- a/lib/spack/spack/stage.py
+++ b/lib/spack/spack/stage.py
@@ -309,6 +309,39 @@ class Stage(object):
             os.chdir(os.path.dirname(self.path))
 
 
+class DIYStage(object):
+    """Simple class that allows any directory to be a spack stage."""
+    def __init__(self, path):
+        self.archive_file = None
+        self.path = path
+        self.source_path = path
+
+    def chdir(self):
+        if os.path.isdir(self.path):
+            os.chdir(self.path)
+        else:
+            tty.die("Setup failed: no such directory: " + self.path)
+
+    def chdir_to_source(self):
+        self.chdir()
+
+    def fetch(self):
+        tty.msg("No need to fetch for DIY.")
+
+    def check(self):
+        tty.msg("No checksum needed for DIY.")
+
+    def expand_archive(self):
+        tty.msg("Using source directory: %s" % self.source_path)
+
+    def restage(self):
+        tty.die("Cannot restage DIY stage.")
+
+    def destroy(self):
+        # No need to destroy DIY stage.
+        pass
+
+
 def _get_mirrors():
     """Get mirrors from spack configuration."""
     config = spack.config.get_config()
-- 
cgit v1.2.3-70-g09d2