コード例 #1
0
def lib_update(ctx, libid):
    lm = LibraryManager()
    for id_, latest_version in (lm.get_latest_versions() or {}).items():
        if libid and int(id_) not in libid:
            continue

        info = lm.get_info(int(id_))

        click.echo("Updating [ %s ] %s library:" % (click.style(
            id_, fg="yellow"), click.style(info['name'], fg="cyan")))

        current_version = info['version']
        if latest_version is None:
            click.secho("Unknown library", fg="red")
            continue

        click.echo("Versions: Current=%s, Latest=%s \t " %
                   (current_version, latest_version),
                   nl=False)

        if current_version == latest_version:
            click.echo("[%s]" % (click.style("Up-to-date", fg="green")))
            continue
        else:
            click.echo("[%s]" % (click.style("Out-of-date", fg="red")))

        ctx.invoke(lib_uninstall, libid=[int(id_)])
        ctx.invoke(lib_install, libid=[int(id_)])
コード例 #2
0
def lib_install(ctx, libid, version):
    lm = LibraryManager()
    for id_ in libid:
        click.echo("Installing library [ %s ]:" %
                   click.style(str(id_), fg="green"))
        try:
            if not lm.install(id_, version):
                continue

            info = lm.get_info(id_)
            click.secho(
                "The library #%s '%s' has been successfully installed!" %
                (str(id_), info['name']),
                fg="green")

            if "dependencies" in info:
                click.secho("Installing dependencies:", fg="yellow")
                _dependencies = info['dependencies']
                if not isinstance(_dependencies, list):
                    _dependencies = [_dependencies]
                for item in _dependencies:
                    try:
                        lib_install_dependency(ctx, item)
                    except AssertionError:
                        raise exception.LibInstallDependencyError(str(item))

        except exception.LibAlreadyInstalled:
            click.secho("Already installed", fg="yellow")
コード例 #3
0
def lib_show(libid):
    lm = LibraryManager()
    info = lm.get_info(libid)
    click.secho(info['name'], fg="cyan")
    click.echo("-" * len(info['name']))

    _authors = []
    for author in info['authors']:
        _data = []
        for key in ("name", "email", "url", "maintainer"):
            if not author[key]:
                continue
            if key == "email":
                _data.append("<%s>" % author[key])
            elif key == "maintainer":
                _data.append("(maintainer)")
            else:
                _data.append(author[key])
        _authors.append(" ".join(_data))
    click.echo("Authors: %s" % ", ".join(_authors))

    click.echo("Keywords: %s" % ", ".join(info['keywords']))
    if "frameworks" in info:
        click.echo("Frameworks: %s" % ", ".join(info['frameworks']))
    if "platforms" in info:
        click.echo("Platforms: %s" % ", ".join(info['platforms']))
    click.echo("Version: %s" % info['version'])
    click.echo()
    click.echo(info['description'])
    click.echo()
コード例 #4
0
ファイル: lib.py プロジェクト: DamnedScholar/platformio
def lib_update(ctx, libid):
    lm = LibraryManager()
    for id_, latest_version in (lm.get_latest_versions() or {}).items():
        if libid and int(id_) not in libid:
            continue

        info = lm.get_info(int(id_))

        click.echo("Updating [ %s ] %s library:" % (
            click.style(id_, fg="yellow"),
            click.style(info['name'], fg="cyan")))

        current_version = info['version']
        if latest_version is None:
            click.secho("Unknown library", fg="red")
            continue

        click.echo("Versions: Current=%s, Latest=%s \t " % (
            current_version, latest_version), nl=False)

        if current_version == latest_version:
            click.echo("[%s]" % (click.style("Up-to-date", fg="green")))
            continue
        else:
            click.echo("[%s]" % (click.style("Out-of-date", fg="red")))

        ctx.invoke(lib_uninstall, libid=[int(id_)])
        ctx.invoke(lib_install, libid=[int(id_)])
コード例 #5
0
def lib_uninstall(libid):
    lm = LibraryManager(get_lib_dir())
    for id_ in libid:
        info = lm.get_info(id_)
        if lm.uninstall(id_):
            click.secho("The library #%s '%s' has been successfully "
                        "uninstalled!" % (str(id_), info['name']), fg="green")
コード例 #6
0
ファイル: lib.py プロジェクト: DamnedScholar/platformio
def lib_show(libid):
    lm = LibraryManager()
    info = lm.get_info(libid)
    click.secho(info['name'], fg="cyan")
    click.echo("-" * len(info['name']))

    _authors = []
    for author in info['authors']:
        _data = []
        for key in ("name", "email", "url", "maintainer"):
            if not author[key]:
                continue
            if key == "email":
                _data.append("<%s>" % author[key])
            elif key == "maintainer":
                _data.append("(maintainer)")
            else:
                _data.append(author[key])
        _authors.append(" ".join(_data))
    click.echo("Authors: %s" % ", ".join(_authors))

    click.echo("Keywords: %s" % ", ".join(info['keywords']))
    if "frameworks" in info:
        click.echo("Frameworks: %s" % ", ".join(info['frameworks']))
    if "platforms" in info:
        click.echo("Platforms: %s" % ", ".join(info['platforms']))
    click.echo("Version: %s" % info['version'])
    click.echo()
    click.echo(info['description'])
    click.echo()
コード例 #7
0
ファイル: lib.py プロジェクト: DamnedScholar/platformio
def lib_uninstall(libid):
    lm = LibraryManager()
    for id_ in libid:
        info = lm.get_info(id_)
        if lm.uninstall(id_):
            click.secho("The library #%s '%s' has been successfully "
                        "uninstalled!" % (str(id_), info['name']), fg="green")
コード例 #8
0
ファイル: lib.py プロジェクト: DamnedScholar/platformio
def lib_install(ctx, libid, version):
    lm = LibraryManager()
    for id_ in libid:
        click.echo(
            "Installing library [ %s ]:" % click.style(str(id_), fg="green"))
        try:
            if not lm.install(id_, version):
                continue

            info = lm.get_info(id_)
            click.secho(
                "The library #%s '%s' has been successfully installed!"
                % (str(id_), info['name']), fg="green")

            if "dependencies" in info:
                click.secho("Installing dependencies:", fg="yellow")
                _dependencies = info['dependencies']
                if not isinstance(_dependencies, list):
                    _dependencies = [_dependencies]
                for item in _dependencies:
                    try:
                        lib_install_dependency(ctx, item)
                    except AssertionError:
                        raise exception.LibInstallDependencyError(str(item))

        except exception.LibAlreadyInstalled:
            click.secho("Already installed", fg="yellow")
コード例 #9
0
ファイル: lib.py プロジェクト: bettabacon/platformio
def lib_update():
    lm = LibraryManager(get_lib_dir())

    lib_ids = [str(item['id']) for item in lm.get_installed().values()]
    if not lib_ids:
        return

    versions = get_api_result("/lib/version/" + str(",".join(lib_ids)))
    for id_ in lib_ids:
        info = lm.get_info(int(id_))

        click.echo("Updating  [ %s ] %s library:" % (
            click.style(id_, fg="yellow"),
            click.style(info['name'], fg="cyan")))

        current_version = info['version']
        latest_version = versions[id_]

        if latest_version is None:
            click.secho("Unknown library", fg="red")
            continue

        click.echo("Versions: Current=%s, Latest=%s \t " % (
            current_version, latest_version), nl=False)

        if current_version == latest_version:
            click.echo("[%s]" % (click.style("Up-to-date", fg="green")))
            continue
        else:
            click.echo("[%s]" % (click.style("Out-of-date", fg="red")))

        lib_uninstall([int(id_)])
        lib_install([int(id_)])
コード例 #10
0
ファイル: lib.py プロジェクト: bettabacon/platformio
def lib_update():
    lm = LibraryManager(get_lib_dir())

    lib_ids = [str(item['id']) for item in lm.get_installed().values()]
    if not lib_ids:
        return

    versions = get_api_result("/lib/version/" + str(",".join(lib_ids)))
    for id_ in lib_ids:
        info = lm.get_info(int(id_))

        click.echo("Updating  [ %s ] %s library:" % (click.style(
            id_, fg="yellow"), click.style(info['name'], fg="cyan")))

        current_version = info['version']
        latest_version = versions[id_]

        if latest_version is None:
            click.secho("Unknown library", fg="red")
            continue

        click.echo("Versions: Current=%s, Latest=%s \t " %
                   (current_version, latest_version),
                   nl=False)

        if current_version == latest_version:
            click.echo("[%s]" % (click.style("Up-to-date", fg="green")))
            continue
        else:
            click.echo("[%s]" % (click.style("Out-of-date", fg="red")))

        lib_uninstall([int(id_)])
        lib_install([int(id_)])