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_)])
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")
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()
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_)])
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")
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()
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")
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")
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_)])
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_)])