1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | ########################################################################################### # Helper classes for the different CI commands ########################################################################################### import sys, os import shutil from System.Net import WebClient class SearchBuild: def __init__(self): self.artifacts = list() self.error = False # search for files with a given file-ending, and call the method # doit() for every occurance def search(self, ending, folder): for root, dirs, files in os.walk(folder): for file in files: if file.endswith(ending): self.artifacts += self.doit(os.path.join(root, file)) print("%u artifact(s) created" % len(self.artifacts)) def save(self, basepath, destination): for filename in self.artifacts: dirname = os.path.dirname(os.path.relpath(filename, basepath)) if dirname.startswith(".."): dirname = os.path.dirname(filename).lstrip("/") destdir = os.path.join(destination, dirname) if not os.path.exists(destdir): os.mkdir(destdir) shutil.copy2(filename, destdir) print("%s => %s" % (filename, destdir)) # dummy rule def doit(self, filename): artifacts = list() return artifacts # # Install a library from a URL (starting with http(s)) # def install_library(url, librarymanager): if not url.startswith("http"): return downloaddir = os.path.join(os.environ["USERPROFILE"], "downloads") if not os.path.exists(downloaddir): os.makedirs(downloaddir) localname = os.path.join(downloaddir, "dl.library") print("*** download %s to %s\n" % (url, localname)) web_client = WebClient() web_client.DownloadFile(url, localname) repo = librarymanager.repositories[0] print("*** installing %s\n" % url) librarymanager.install_library (localname, repo, True) # # Check if there is a *.requirements file, and install # all requirements from there. The parameter is a library # URL, while we are checking if a *.requirements file exists # beside this library. # def install_requirements(library_filename, librarymanager): reqfilename = os.path.splitext(library_filename)[0] + ".requirements" if os.path.isfile(reqfilename): reqfile = open(reqfilename, "r") for req in reqfile: install_library(req, librarymanager) |