def list(self): """ List installed plugins. """ self.p_main('Finding installed plugins') plugins = backend.list_plugins() if len(plugins) == 0: self.p_sub('Found no plugins') return self.p_main('Installed plugins:') self.p_blank() max_name_len = max([len('[{}]{}'.format(p['installed_file'], p['plugin_name'])) for p in plugins]) max_ver_len = max([len(p['installed_version']) for p in plugins]) frmt = '{{:<{}}} - {{:<{}}}'.format(max_name_len, max_ver_len) for plugin in plugins: jar = plugin['installed_file'] name = plugin['plugin_name'] version = plugin['installed_version'] line = frmt.format('[{}]{}'.format(jar, name), version) newest_version = utils.select_newest_version(plugin, self.args.version) if newest_version is not None and \ newest_version['version'] > version: new_version = newest_version['version'] line += ' -- Out of date, newest version: {}'.format( new_version) self.p_sub(line) self.p_blank()
def download(self): """ Download plugins. """ self.args.ignored = [e.lower() for e in self.args.ignored] self.p_main('Finding installed plugins') installed = backend.list_plugins() self.p_main('Finding plugins on BukGet') plugins = backend.dependencies(self.args.server, self.args.plugins, self.args.version, deps=self.args.resolve_dependencies) to_install = list() for plugin in plugins: if plugin['plugin_name'].lower() in self.args.ignored: self.p_sub("Ignoring {}", plugin['plugin_name']) continue if len(plugin['versions']) < 1: self.p_sub("Could not find any versions for {}", plugin['plugin_name']) continue for i_plugin in installed: if i_plugin['slug'] == plugin['slug'] \ and not i_plugin['versions'][0]['version'] > \ plugin['versions'][0]['version']: self.p_sub("{} is allready installed, and up to date", plugin['plugin_name']) break else: to_install.append(plugin) plugins = to_install if len(plugins) < 1: self.p_main('No plugins left to install') return self.p_main('Plugins to install:') self.p_blank() self.p_sub( common.list_names([ p['plugin_name'] + '#' + p['versions'][0]['version'] for p in plugins ])) self.p_blank() backend.download( 'Continue to download?', '({{part:>{}}}/{{total}}) '.format(len(str(len(plugins)))), plugins, self.args.no_confirm) self.p_blank() self.p_raw('Done!')
def download(self): """ Download plugins. """ self.args.ignored = [e.lower() for e in self.args.ignored] self.p_main('Finding installed plugins') installed = backend.list_plugins() self.p_main('Finding plugins on BukGet') plugins = backend.dependencies(self.args.server, self.args.plugins, self.args.version, deps=self.args.resolve_dependencies) to_install = list() for plugin in plugins: if plugin['plugin_name'].lower() in self.args.ignored: self.p_sub("Ignoring {}", plugin['plugin_name']) continue if len(plugin['versions']) < 1: self.p_sub("Could not find any versions for {}", plugin['plugin_name']) continue for i_plugin in installed: if i_plugin['slug'] == plugin['slug'] \ and not i_plugin['versions'][0]['version'] > \ plugin['versions'][0]['version']: self.p_sub("{} is allready installed, and up to date", plugin['plugin_name']) break else: to_install.append(plugin) plugins = to_install if len(plugins) < 1: self.p_main('No plugins left to install') return self.p_main('Plugins to install:') self.p_blank() self.p_sub(common.list_names([p['plugin_name'] + '#' + p['versions'][0]['version'] for p in plugins])) self.p_blank() backend.download('Continue to download?', '({{part:>{}}}/{{total}}) '.format( len(str(len(plugins)))), plugins, self.args.no_confirm) self.p_blank() self.p_raw('Done!')
def update(self): """ Update installed plugins. """ self.args.ignored = [e.lower() for e in self.args.ignored] self.p_main('Finding installed plugins') installed = backend.list_plugins() self.p_main('Looking up versions on BukGet') to_update = list() for i in installed: if i['plugin_name'].lower() in self.args.ignored: self.p_sub('Ignoring {}', i['plugin_name']) continue n_version = utils.select_newest_version(i, self.args.version) if n_version is None: continue i_version = utils.select_installed_version(i) if n_version['version'] > i_version['version']: to_update.append(i) self.p_main('Plugins to update:') self.p_blank() if len(to_update) < 1: self.p_sub('All plugins are up to date!') self.p_sub(('Maybe you want a pre-release? Try passing --beta, ' '--alpha or even --latest as command options')) self.p_blank() return self.p_sub( common.list_names([ p['plugin_name'] + '#' + p['versions'][0]['version'] for p in to_update ])) self.p_blank() if common.ask('Continue to update?', skip=self.args.no_confirm): prefix_format = '({{part:>{}}}/{{total}}) '.format( len(str(len(to_update)))) for i in range(len(to_update)): plugin = to_update[i] os.remove(plugin['installed_file']) prefix = prefix_format.format(total=len(to_update), part=i + 1) backend.download_plugin(plugin, prefix) self.p_blank() self.p_raw('Done!')
def update(self): """ Update installed plugins. """ self.args.ignored = [e.lower() for e in self.args.ignored] self.p_main('Finding installed plugins') installed = backend.list_plugins() self.p_main('Looking up versions on BukGet') to_update = list() for i in installed: if i['plugin_name'].lower() in self.args.ignored: self.p_sub('Ignoring {}', i['plugin_name']) continue n_version = utils.select_newest_version(i, self.args.version) if n_version is None: continue i_version = utils.select_installed_version(i) if n_version['version'] > i_version['version']: to_update.append(i) self.p_main('Plugins to update:') self.p_blank() if len(to_update) < 1: self.p_sub('All plugins are up to date!') self.p_sub(('Maybe you want a pre-release? Try passing --beta, ' '--alpha or even --latest as command options')) self.p_blank() return self.p_sub(common.list_names([p['plugin_name'] + '#' + p['versions'][0]['version'] for p in to_update])) self.p_blank() if common.ask('Continue to update?', skip=self.args.no_confirm): prefix_format = '({{part:>{}}}/{{total}}) '.format( len(str(len(to_update)))) for i in range(len(to_update)): plugin = to_update[i] os.remove(plugin['installed_file']) prefix = prefix_format.format(total=len(to_update), part=i+1) backend.download_plugin(plugin, prefix) self.p_blank() self.p_raw('Done!')
def run(self): """ Run the command. """ self.p_main('Saving {} to {}'.format( common.list_names(self.args.types), self.args.output.name)) plugins = dict() servers = dict() if 'plugins' in self.args.types: self.p_main('Finding plugins') for plugin in p_backend.list_plugins(): version = p_utils.select_installed_version(plugin) plugins[plugin['installed_file']] = (plugin['slug'], version['slug']) if 'servers' in self.args.types: self.p_main('Finding servers') servers = s_backend.list_servers() self.p_main('Writing file') document = dict() document['servers'] = list() for file, key in servers.items(): server = dict() server['id'] = key server['file'] = file document['servers'].append(server) document['plugins'] = list() for file, (slug, version) in plugins.items(): plugin = dict() plugin['file'] = file plugin['slug'] = slug plugin['version-slug'] = version document['plugins'].append(plugin) self.args.output.write(json.dumps(document)) self.args.output.write('\n')
def list(self): """ List installed plugins. """ self.p_main('Finding installed plugins') plugins = backend.list_plugins() if len(plugins) == 0: self.p_sub('Found no plugins') return self.p_main('Installed plugins:') self.p_blank() max_name_len = max([ len('[{}]{}'.format(p['installed_file'], p['plugin_name'])) for p in plugins ]) max_ver_len = max([len(p['installed_version']) for p in plugins]) frmt = '{{:<{}}} - {{:<{}}}'.format(max_name_len, max_ver_len) for plugin in plugins: jar = plugin['installed_file'] name = plugin['plugin_name'] version = plugin['installed_version'] line = frmt.format('[{}]{}'.format(jar, name), version) newest_version = utils.select_newest_version( plugin, self.args.version) if newest_version is not None and \ newest_version['version'] > version: new_version = newest_version['version'] line += ' -- Out of date, newest version: {}'.format( new_version) self.p_sub(line) self.p_blank()