示例#1
0
    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)
示例#2
0
文件: git.py 项目: nitehawck/dem
    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