Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
    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!')
Exemplo n.º 3
0
    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!')
Exemplo n.º 4
0
    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!')
Exemplo n.º 5
0
    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!')
Exemplo n.º 6
0
    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')
Exemplo n.º 7
0
    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')
Exemplo n.º 8
0
    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()