def uninstall_changed_packages(self): for name, version in self._packages_to_remove(self._cache.local_installed_packages()): locations = self._cache.install_locations(name) print('[dem] uninstalling {}-{}'.format(name, version)) for location in locations: if os.path.isdir(location): Utils.remove_directory(location) elif os.path.isfile(location): os.remove(location) for name, version in self._packages_to_remove(self._cache.system_installed_packages()): self._remove_system_package(name, version) for name, version in self._packages_to_remove(self._cache.pip_installed_packages()): print('[dem] pip removing {}-{}'.format(name, version)) self._pip_runner.remove(name, version)
def install_packages(self): installed_packages = [] for p in self._packages: if not GitProjectInstaller._can_clone(p): continue if self._cache.is_package_installed(p['name'], p['version']): print('[dem] {}-{} already git cloned'.format(p['name'], p['version'])) else: print('[dem] cloning git {}-{}'.format(p['name'], p['version'])) clone_location = os.path.join(p['platform-destination-path'], p['name']) if os.path.exists(clone_location): Utils.remove_directory(clone_location) repo = Repo.clone_from(p['url'], clone_location) repo.git.checkout(p['version']) package = dict() package[p['name']] = {'version': p['version'], 'type': 'local', 'install_locations': [clone_location]} installed_packages.append(package) return installed_packages