def execute(self): if self._path == "": self.reportError("Missing required path option") self._path = os.path.abspath(self._path) util = BMUtil() if not os.path.exists(self._path): return True if os.path.isdir(self._path): print "* Removing directory " + self._path util.rmdir(self._path) else: print "* Removing file " + self._path os.remove(self._path) return True
def clean(self): self._dmplugin = PlugInManager().getPlugInInstance("DepManPlugIn") if self._dmplugin == None: self.reportError("PlugIn `depman` not found") self.setExecute(False) return self._default_repository = self._dmplugin.getDepManPath() #the extra parameter "all" enables dmn to clear the cache directory print "* cleaning..." util = BMUtil() util.rmdir(self._default_repository + os.path.sep + "include") util.rmdir(self._default_repository + os.path.sep + "lib") util.rmdir(self._default_repository + os.path.sep + "bin") util.rmdir(self._default_repository + os.path.sep + "share") util.rmdir(self._default_repository + os.path.sep + "Frameworks") if self._delete_cache: util.rmdir(self._default_repository + os.path.sep + ".cache") return True
def clean(self): self._dmplugin = PlugInManager().getPlugInInstance("DepManPlugIn") if self._dmplugin == None: self.reportError("PlugIn `depman` not found") self.setExecute(False) return self._default_repository = self._dmplugin.getDepManPath() #the extra parameter "all" enables dmn to clear the cache directory print "* cleaning..." util = BMUtil() util.rmdir(self._default_repository+os.path.sep+"include") util.rmdir(self._default_repository+os.path.sep+"lib") util.rmdir(self._default_repository+os.path.sep+"bin") util.rmdir(self._default_repository+os.path.sep+"share") util.rmdir(self._default_repository+os.path.sep+"Frameworks") if self._delete_cache: util.rmdir(self._default_repository+os.path.sep+".cache") return True
def create(self): self._dmplugin = PlugInManager().getPlugInInstance("DepManPlugIn") if self._dmplugin == None: self.reportError("PlugIn `depman` not found") return False #user questions if self._is_Interactive: self._group=raw_input("Group: ") self._artifact=raw_input("Artifact: ") self._version=raw_input("Version: ") tmpstr="" for p in self._dmplugin.getSupportedPlatforms(): tmpstr=tmpstr+p+" " print "( ",tmpstr,")" tmstr="Platform [*]:" self._platform=raw_input(string.replace(tmstr,"*",self._dmplugin.getOSPlatform())) if len(self._platform)==0: self._platform=self._dmplugin.getOSPlatform() tmpstr="" for p in self._dmplugin.getSupportedCompilers(): tmpstr=tmpstr+p+" " print "( ",tmpstr,")" tmstr="Compiler [*]:" self._compiler=raw_input(string.replace(tmstr,"*",self._dmplugin.getOSCompiler())) if len(self._compiler)==0: self._compiler=self._dmplugin.getOSCompiler() tmpstr="" for p in self._dmplugin.getSupportedArchs(): tmpstr=tmpstr+p+" " print "( ",tmpstr,")" tmstr="Architecture [*]:" self._arch=raw_input(string.replace(tmstr,"*",self._dmplugin.getOSArch())) if len(self._arch)==0: self._arch=self._dmplugin.getOSArch() tmpstr="" for p in self._dmplugin.getSupportedLibraryTypes(): tmpstr=tmpstr+p+" " print "( ",tmpstr,")" self._ltype=raw_input("Library Type: ") upload_response = raw_input("Upload to server? (y/n): ") if upload_response == "y" or upload_response == "yes": self._upload=True if self._packageNode != None: for n in self._packageNode.childNodes: if n.localName=="package": processPackage = True if n.hasAttributes(): if n.attributes.has_key("platform"): values = n.attributes.get("platform").value.split(",") if self._dmplugin.getOSPlatform() in values: processPackage = True else: processPackage = False if processPackage: print "Processing for platform..." for p in n.childNodes: if p.localName=="group": self._group=p.childNodes[0].nodeValue if p.localName=="artifact": self._artifact=p.childNodes[0].nodeValue if p.localName=="version": self._version=p.childNodes[0].nodeValue if p.localName=="platform": self._platform=p.childNodes[0].nodeValue if p.localName=="compiler": self._compiler=p.childNodes[0].nodeValue if p.localName=="arch": self._arch=p.childNodes[0].nodeValue if p.localName=="libraryType": self._ltype=p.childNodes[0].nodeValue if p.localName =="upload": #TODO: Maybe upload should be an external plugin for k in p.childNodes: if k.localName == "sshserver": self._default_ssh = k.childNodes[0].nodeValue if k.localName == "destdir": self._default_destdir = k.childNodes[0].nodeValue if k.localName == "username": self._default_login = k.childNodes[0].nodeValue if self._group == "": self.reportError("Group cannot be empty") return False if self._artifact == "": self.reportError("Artifact cannot be empty") return False if self._version == "": self.reportError("Version cannog be empty") return self._group=self._group.replace(".","/") if self._platform=="default": self._platform=self._dmplugin.getOSPlatform() if self._compiler=="default": self._compiler=self._dmplugin.getOSCompiler() if self._arch=="default": self._arch=self._dmplugin.getOSArch() #let's check user input consistency if self._platform not in self._dmplugin.getSupportedPlatforms(): self.reportError("Platform not supported: " + self._platform + ". Supported platforms:" + str(self._dmplugin.getSupportedPlatforms())) return False if self._compiler not in self._dmplugin.getSupportedCompilers(): self.reportError("Compiler not supported: " + self._compiler + ". Supported compilers:" +str(self._dmplugin.getSupportedCompilers())) return False if self._arch not in self._dmplugin.getSupportedArchs(): self.reportError("Architecture not supported: " + self._arch + ". Supported archs:" +str(self._dmplugin.getSupportedArchs())) return False if self._ltype not in self._dmplugin.getSupportedLibraryTypes(): self.reportError("Library type not supported: " + self._ltype + ". Supported libraries:" +str(self._dmplugin.getSupportedLibraryTypes())) return False #artifact and md5 generation file_name=self._artifact+"-"+self._version+"-"+self._platform+"-"+self._compiler+"-"+self._arch+"-"+self._ltype tarname=file_name+".tar.gz" md5name=tarname+".md5" dmfile=file_name+".xml" dmutil = BMUtil() tmpdir=self._dmplugin.getDepManPath()+os.path.sep+".cache"+os.path.sep+self._group+os.path.sep+self._artifact+os.path.sep+self._version+os.path.sep+self._platform+os.path.sep+self._compiler+os.path.sep+self._arch+os.path.sep+self._ltype dmutil.mkdir(tmpdir) print tmpdir+os.path.sep+tarname,self._path dmutil.targz(os.path.join(tmpdir,tarname),self._path) #print "targz ",tmpdir+os.path.sep+tarname dmutil.createMD5(tmpdir+os.path.sep+tarname,tmpdir+os.path.sep+md5name) if self._xmlfile != "": shutil.copyfile(self._xmlfile,tmpdir+os.path.sep+dmfile) print "Artifact " + tarname + " created in:\n" + tmpdir if self._upload: dmutil.rmdir(".dmn_tmp") # Prevent for uploading bad previous compilations! sshtmpdir=".dmn_tmp"+os.path.sep+self._group+os.path.sep+self._artifact+os.path.sep+self._version+os.path.sep+self._platform+os.path.sep+self._compiler+os.path.sep+self._arch+os.path.sep+self._ltype dmutil.mkdir(sshtmpdir) shutil.copyfile(tmpdir+os.path.sep+tarname,sshtmpdir+os.path.sep+tarname) shutil.copyfile(tmpdir+os.path.sep+md5name,sshtmpdir+os.path.sep+md5name) if self._xmlfile != "": shutil.copyfile(tmpdir+os.path.sep+dmfile,sshtmpdir+os.path.sep+dmfile) url = self._default_ssh; destdir = self._default_destdir login = self._default_login if self._is_Interactive: tmstr="SSH Server [*]:" url=raw_input(string.replace(tmstr,"*",self._default_ssh)) if len(url)==0: url=self._default_ssh tmstr="Destination Directory [*]:" destdir=raw_input(string.replace(tmstr,"*",self._default_destdir)) if len(destdir)==0: destdir=self._default_destdir tmstr="Login [*]:" login=raw_input(string.replace(tmstr,"*",self._default_login)) if len(login)==0: login=self._default_login download_dir = self._group+"/"+self._artifact+"/"+self._version+"/"+self._platform+"/"+self._compiler+"/"+self._arch+"/"+self._ltype print "* Uploading ",tarname print "* Uploading ",md5name #scp base_ssh=destdir url_ssh=url scpcommand = "scp" pscppath = "" if sys.platform == "win32": scpcommand=self._dmplugin.getDepManDataPath()+os.path.sep+"win32"+os.path.sep+"pscp.exe" scpcommand = '"'+os.path.normpath(scpcommand)+'"' cmdstr=scpcommand +" -r "+".dmn_tmp"+os.path.sep+"*"+" "+login+"@"+url_ssh+":"+base_ssh print cmdstr os.system(cmdstr) #scp dmutil.rmdir(".dmn_tmp")
def create(self): self._dmplugin = PlugInManager().getPlugInInstance("DepManPlugIn") if self._dmplugin == None: self.reportError("PlugIn `depman` not found") return False #user questions if self._is_Interactive: self._group = raw_input("Group: ") self._artifact = raw_input("Artifact: ") self._version = raw_input("Version: ") tmpstr = "" for p in self._dmplugin.getSupportedPlatforms(): tmpstr = tmpstr + p + " " print "( ", tmpstr, ")" tmstr = "Platform [*]:" self._platform = raw_input( string.replace(tmstr, "*", self._dmplugin.getOSPlatform())) if len(self._platform) == 0: self._platform = self._dmplugin.getOSPlatform() tmpstr = "" for p in self._dmplugin.getSupportedCompilers(): tmpstr = tmpstr + p + " " print "( ", tmpstr, ")" tmstr = "Compiler [*]:" self._compiler = raw_input( string.replace(tmstr, "*", self._dmplugin.getOSCompiler())) if len(self._compiler) == 0: self._compiler = self._dmplugin.getOSCompiler() tmpstr = "" for p in self._dmplugin.getSupportedArchs(): tmpstr = tmpstr + p + " " print "( ", tmpstr, ")" tmstr = "Architecture [*]:" self._arch = raw_input( string.replace(tmstr, "*", self._dmplugin.getOSArch())) if len(self._arch) == 0: self._arch = self._dmplugin.getOSArch() tmpstr = "" for p in self._dmplugin.getSupportedLibraryTypes(): tmpstr = tmpstr + p + " " print "( ", tmpstr, ")" self._ltype = raw_input("Library Type: ") upload_response = raw_input("Upload to server? (y/n): ") if upload_response == "y" or upload_response == "yes": self._upload = True if self._packageNode != None: for n in self._packageNode.childNodes: if n.localName == "package": processPackage = True if n.hasAttributes(): if n.attributes.has_key("platform"): values = n.attributes.get("platform").value.split( ",") if self._dmplugin.getOSPlatform() in values: processPackage = True else: processPackage = False if processPackage: print "Processing for platform..." for p in n.childNodes: if p.localName == "group": self._group = p.childNodes[0].nodeValue if p.localName == "artifact": self._artifact = p.childNodes[0].nodeValue if p.localName == "version": self._version = p.childNodes[0].nodeValue if p.localName == "platform": self._platform = p.childNodes[0].nodeValue if p.localName == "compiler": self._compiler = p.childNodes[0].nodeValue if p.localName == "arch": self._arch = p.childNodes[0].nodeValue if p.localName == "libraryType": self._ltype = p.childNodes[0].nodeValue if p.localName == "upload": #TODO: Maybe upload should be an external plugin for k in p.childNodes: if k.localName == "sshserver": self._default_ssh = k.childNodes[ 0].nodeValue if k.localName == "destdir": self._default_destdir = k.childNodes[ 0].nodeValue if k.localName == "username": self._default_login = k.childNodes[ 0].nodeValue if self._group == "": self.reportError("Group cannot be empty") return False if self._artifact == "": self.reportError("Artifact cannot be empty") return False if self._version == "": self.reportError("Version cannog be empty") return self._group = self._group.replace(".", "/") if self._platform == "default": self._platform = self._dmplugin.getOSPlatform() if self._compiler == "default": self._compiler = self._dmplugin.getOSCompiler() if self._arch == "default": self._arch = self._dmplugin.getOSArch() #let's check user input consistency if self._platform not in self._dmplugin.getSupportedPlatforms(): self.reportError("Platform not supported: " + self._platform + ". Supported platforms:" + str(self._dmplugin.getSupportedPlatforms())) return False if self._compiler not in self._dmplugin.getSupportedCompilers(): self.reportError("Compiler not supported: " + self._compiler + ". Supported compilers:" + str(self._dmplugin.getSupportedCompilers())) return False if self._arch not in self._dmplugin.getSupportedArchs(): self.reportError("Architecture not supported: " + self._arch + ". Supported archs:" + str(self._dmplugin.getSupportedArchs())) return False if self._ltype not in self._dmplugin.getSupportedLibraryTypes(): self.reportError("Library type not supported: " + self._ltype + ". Supported libraries:" + str(self._dmplugin.getSupportedLibraryTypes())) return False #artifact and md5 generation file_name = self._artifact + "-" + self._version + "-" + self._platform + "-" + self._compiler + "-" + self._arch + "-" + self._ltype tarname = file_name + ".tar.gz" md5name = tarname + ".md5" dmfile = file_name + ".xml" dmutil = BMUtil() tmpdir = self._dmplugin.getDepManPath( ) + os.path.sep + ".cache" + os.path.sep + self._group + os.path.sep + self._artifact + os.path.sep + self._version + os.path.sep + self._platform + os.path.sep + self._compiler + os.path.sep + self._arch + os.path.sep + self._ltype dmutil.mkdir(tmpdir) print tmpdir + os.path.sep + tarname, self._path dmutil.targz(os.path.join(tmpdir, tarname), self._path) #print "targz ",tmpdir+os.path.sep+tarname dmutil.createMD5(tmpdir + os.path.sep + tarname, tmpdir + os.path.sep + md5name) if self._xmlfile != "": shutil.copyfile(self._xmlfile, tmpdir + os.path.sep + dmfile) print "Artifact " + tarname + " created in:\n" + tmpdir if self._upload: dmutil.rmdir( ".dmn_tmp") # Prevent for uploading bad previous compilations! sshtmpdir = ".dmn_tmp" + os.path.sep + self._group + os.path.sep + self._artifact + os.path.sep + self._version + os.path.sep + self._platform + os.path.sep + self._compiler + os.path.sep + self._arch + os.path.sep + self._ltype dmutil.mkdir(sshtmpdir) shutil.copyfile(tmpdir + os.path.sep + tarname, sshtmpdir + os.path.sep + tarname) shutil.copyfile(tmpdir + os.path.sep + md5name, sshtmpdir + os.path.sep + md5name) if self._xmlfile != "": shutil.copyfile(tmpdir + os.path.sep + dmfile, sshtmpdir + os.path.sep + dmfile) url = self._default_ssh destdir = self._default_destdir login = self._default_login if self._is_Interactive: tmstr = "SSH Server [*]:" url = raw_input(string.replace(tmstr, "*", self._default_ssh)) if len(url) == 0: url = self._default_ssh tmstr = "Destination Directory [*]:" destdir = raw_input( string.replace(tmstr, "*", self._default_destdir)) if len(destdir) == 0: destdir = self._default_destdir tmstr = "Login [*]:" login = raw_input( string.replace(tmstr, "*", self._default_login)) if len(login) == 0: login = self._default_login download_dir = self._group + "/" + self._artifact + "/" + self._version + "/" + self._platform + "/" + self._compiler + "/" + self._arch + "/" + self._ltype print "* Uploading ", tarname print "* Uploading ", md5name #scp base_ssh = destdir url_ssh = url scpcommand = "scp" pscppath = "" if sys.platform == "win32": scpcommand = self._dmplugin.getDepManDataPath( ) + os.path.sep + "win32" + os.path.sep + "pscp.exe" scpcommand = '"' + os.path.normpath(scpcommand) + '"' cmdstr = scpcommand + " -r " + ".dmn_tmp" + os.path.sep + "*" + " " + login + "@" + url_ssh + ":" + base_ssh print cmdstr os.system(cmdstr) #scp dmutil.rmdir(".dmn_tmp")