def run(self): if len(self.parser.getArgs())>2: error("Too many arguments:",self.parser.getArgs()[2:],"can not be used") sName=self.parser.getArgs()[0] dName=self.parser.getArgs()[1] if path.exists(dName): if self.parser.getOptions().force: warning("Replacing",dName,"(--force option)") elif path.exists(path.join(dName,"system","controlDict")): error("Destination",dName,"already existing and a Foam-Case") elif path.isdir(dName): dName=path.join(dName,path.basename(sName)) if path.exists(dName) and not self.parser.getOptions().force: error(dName,"already existing") elif not path.exists(path.dirname(dName)): warning("Directory",path.dirname(dName),"does not exist. Creating") sol=SolutionDirectory(sName, archive=None, paraviewLink=False, addLocalConfig=True, parallel=self.opts.parallel) if sol.determineVCS()!=None and self.opts.vcs: if self.opts.chemkin or self.opts.additional or self.opts.latest: self.error("Using an unimplemented option together with VCS") vcsInter=getVCS(sol.determineVCS(), path=sol.name) vcsInter.clone(dName) return if self.parser.getOptions().chemkin: sol.addToClone("chemkin") if self.parser.getOptions().dopyfoam: sol.addToClone("customRegexp") for a in self.parser.getOptions().additional: sol.addToClone(a) if self.parser.getOptions().latest: sol.addToClone(sol.getLast()) if self.opts.symlinkMode: sol.symlinkCase( dName, followSymlinks=self.parser.getOptions().followSymlinks, maxLevel=self.opts.symlinkLevel, relPath=self.opts.symlinkRelative ) else: sol.cloneCase( dName, followSymlinks=self.parser.getOptions().followSymlinks ) self.addToCaseLog(dName,"Cloned to",dName)
def run(self): sol = SolutionDirectory(self.parser.getArgs()[0]) if not self.opts.init: vcs = sol.determineVCS() if vcs == None: self.error("not under version control") if not vcs in self.vcsChoices: self.error("Unsupported VCS", vcs) else: vcs = self.opts.vcs vcsInter = getVCS(vcs, path=sol.name, init=self.opts.init) vcsInter.addPath(path.join(sol.name, "constant"), rules=ruleList) vcsInter.addPath(path.join(sol.name, "system"), rules=ruleList) if sol.initialDir() != None: vcsInter.addPath(sol.initialDir(), rules=ruleList) else: self.warning("No initial-directory found") # special PyFoam-files for f in ["customRegexp", "LocalConfigPyFoam"]: p = path.join(sol.name, f) if path.exists(p): vcsInter.addPath(p, rules=ruleList) # Add the usual files from the tutorials for g in ["Allrun*", "Allclean*"]: for f in glob(path.join(sol.name, g)): vcsInter.addPath(f, rules=ruleList) for a in self.opts.additional: vcsInter.addPath(a, rules=ruleList) vcsInter.commit(self.opts.commitMessage)
def run(self): sol=SolutionDirectory(self.parser.getArgs()[0]) if not self.opts.init: vcs=sol.determineVCS() if vcs==None: self.error("not under version control") if not vcs in self.vcsChoices: self.error("Unsupported VCS",vcs) else: vcs=self.opts.vcs vcsInter=getVCS(vcs, path=sol.name, init=self.opts.init) vcsInter.addPath(path.join(sol.name,"constant"),rules=ruleList) vcsInter.addPath(path.join(sol.name,"system"),rules=ruleList) if sol.initialDir()!=None: vcsInter.addPath(sol.initialDir(),rules=ruleList) else: self.warning("No initial-directory found") # special PyFoam-files for f in ["customRegexp","LocalConfigPyFoam"]: p=path.join(sol.name,f) if path.exists(p): vcsInter.addPath(p,rules=ruleList) # Add the usual files from the tutorials for g in ["Allrun*","Allclean*"]: for f in glob(path.join(sol.name,g)): vcsInter.addPath(f,rules=ruleList) for a in self.opts.additional: vcsInter.addPath(a,rules=ruleList) vcsInter.commit(self.opts.commitMessage)