def execute(self): repositoryPath = tempfile.mkdtemp() manifestPath = os.path.join(repositoryPath, 'manifest-start.json') packagePath = os.path.join(repositoryPath, 'package.tar.gz') self.repositoryDownloader = GitRepositoryDownloader() self.moduleInstaller = PythonModuleInstaller(repositoryPath, manifestPath) print('Repository path: {0}'.format(repositoryPath)) try: yield self.cloneRepository(repositoryPath) yield self.installRepository() yield self.createPackage(repositoryPath, packagePath) yield Upload(self.storage, **{ 'name': self.name, 'manifest': manifestPath, 'package': packagePath }).execute() except (RepositoryDownloadError, ModuleInstallError) as err: print(err)
def installCocaineFramework(self): path = tempfile.mkdtemp() downloader = GitRepositoryDownloader(stream=self.stream) try: log.debug(COCAINE_DOWNLOAD_START.format(COCAINE_PYTHON_FRAMEWORK_URL, path)) downloader.download(COCAINE_PYTHON_FRAMEWORK_URL, path) except RepositoryDownloadError as err: raise ModuleInstallError(err) log.debug(COCAINE_INSTALL_START) python = os.path.join(self.virtualEnvironmentPath, 'bin', 'python') process = subprocess.Popen([python, 'setup.py', 'install', '--without-tools'], cwd=path, stdout=self.stream, stderr=self.stream) process.wait() if process.returncode != 0: raise ModuleInstallError(COCAINE_INSTALL_ERROR) log.debug(COCAINE_INSTALL_FINISH)
def test_clone(): d = GitRepositoryDownloader() d.download("blabla", tempfile.gettempdir())