+ """Runs an environment script.
+
+ :param product_info Config: The product description
+ :param logger Logger: The logger instance to display messages
+ """
+ env_script = product_info.environ.env_script
+ # Check that the script exists
+ if not os.path.exists(env_script):
+ raise src.SatException(_("Environment script not found: %s") %
+ env_script)
+
+ if not self.silent and logger is not None:
+ logger.write(" ** load %s\n" % env_script, 4)
+
+ # import the script and run the set_env function
+ try:
+ import imp
+ pyproduct = imp.load_source(product_info.name + "_env_script",
+ env_script)
+ pyproduct.set_env(self, product_info.install_dir,
+ product_info.version)
+ except:
+ __, exceptionValue, exceptionTraceback = sys.exc_info()
+ print(exceptionValue)
+ import traceback
+ traceback.print_tb(exceptionTraceback)
+ traceback.print_exc()
+
+ def run_simple_env_script(self, script_path, logger=None):
+ """Runs an environment script. Same as run_env_script, but with a
+ script path as parameter.
+
+ :param script_path str: a path to an environment script
+ :param logger Logger: The logger instance to display messages
+ """
+ # Check that the script exists
+ if not os.path.exists(script_path):
+ raise src.SatException(_("Environment script not found: %s") %
+ script_path)