Beispiel #1
0
    def convertValues(self):

        # Before any interpolation and conversion, convert essential
        # local and global dir to absolut paths!
        # important, because its more safe!
        self.interpolation.setSkipping(False)  # turn interpolation on

        self.config["Job"]["localDir"] = cF.expandEnvVar(
            self.config["Job"]["localDir"], self.envRegexPattern, errorIfNotFullyExpanded=False
        )
        # allow Job:localDir to contain '$VAR' variables, are expanded by shell
        if "$" in self.config["Job"]["localDir"]:
            CE.printWarning(
                "Your Job:localDir: %s contains '$' character, which are only expanded in Bash!"
                % self.config["Job"]["localDir"]
            )

        self.config["Job"]["globalDir"] = os.path.abspath(
            cF.expandEnvVar(self.config["Job"]["globalDir"], self.envRegexPattern, errorIfNotFullyExpanded=True)
        )
        # Job:globalDir is made absolute to execution dir when configuring

        # convert and interpolate all values in base class
        super(GeneratorMPI, self).convertValues()

        # do some other conversion for this generator values
        self.__convertValues()
def makeDirectory(path,interact=True, name="Directory", defaultCreate=True, defaultMakeEmpty=False):
       
     
     if not os.path.exists(path) :
         CE.printInfo("%s : %s" % (name,path) + " does not exist!")
         default = 'y' if defaultCreate else 'n'
         r=''
         if interact:
             r = input(CE.makePrompt("Do you want to create directory [y|n, default(%s)]: " % default)).strip()
        
         r = r or default
         
         if r == 'n':
             raise CE.MyValueError("Aborted due to not created directory!")
         else:
             os.makedirs(path)
             CE.printInfo("Created %s : %s" %  (name,path))
     else:
        mess = "%s : %s" % (name,path) + " does already exist!"
        if interact:
           CE.printWarning(mess)
        else:
           CE.printInfo(mess)
           
        # dir exists
        default='y' if  defaultMakeEmpty else 'n'
        r=''
        if interact:
            r = input(CE.makePrompt("Do you want to remove and recreate the directory [y|n, default(%s)]: " % default) ).strip()
        
        r = r or default
        if r == 'y':
             shutil.rmtree(path)
             os.makedirs(path)
             CE.printInfo("Removed and created %s : %s" %  (name,path))