def run(self, args): cli.echo() # Get repo if args.to_repo: to_repo = api.get_repo(name=args.to_repo) else: to_repo = prompt_for_repo( api.get_repos(), 'Choose a repo to publish to', default_repo_name='home', ) # Resolve module resolver = Resolver(api.get_repos()) module_spec = resolver.resolve([args.module])[0] cli.echo() # Confirm publication choice = cli.prompt('Publish module to %s?[y/n] ' % to_repo.name) if choice.lower() not in ['y', 'yes', 'yup']: cli.echo('Aborted.') sys.exit(1) # Publish module = Module(module_spec.path) published = to_repo.upload(module, args.overwrite) cli.echo() cli.echo('Activate your module:') cli.echo(' cpenv activate %s' % published.real_name) cli.echo()
def run(self, args): core.echo() # Get repo if args.to_repo: to_repo = api.get_repo(name=args.to_repo) else: to_repo = core.prompt_for_repo( api.get_repos(), "Choose a repo to publish to", default_repo_name="home", ) # Resolve module resolver = Resolver(api.get_repos()) module_spec = resolver.resolve([args.module])[0] core.echo() # Confirm publication choice = core.prompt("Publish module to %s?[y/n] " % to_repo.name) if choice.lower() not in ["y", "yes", "yup"]: core.echo("Aborted.") sys.exit(1) # Publish module = Module(module_spec.path) published = to_repo.upload(module, args.overwrite) core.echo() core.echo("Activate your module:") core.echo(" cpenv activate %s" % published.real_name) core.echo()
def run(self, args): filters = self.parse_filters(args.filters) core.echo() found_environments = False for repo in api.get_repos(): environments = repo.list_environments(filters) env_names = sorted([env.name for env in environments]) if env_names: found_environments = True if repo.name != repo.path: header = repo.name + " - " + repo.path else: header = repo.name core.echo(core.format_columns( header, env_names, indent=" ", )) core.echo() if not found_environments: core.echo("No Environments are were found.") core.echo('Use "cpenv env save <name>" to save an Environment.')
def run(self, args): found_modules = False cli.echo() active_modules = api.get_active_modules() if args.requirement: active_modules = [ m for m in active_modules if is_partial_match(args.requirement, m) ] if active_modules: found_modules = True cli.echo( cli.format_columns( '[*] Active', [m.real_name for m in sort_modules(active_modules)], )) cli.echo() repos = api.get_repos() if args.repo: repos = [api.get_repo(args.repo)] for repo in repos: if args.requirement: repo_modules = repo.find(args.requirement) else: repo_modules = repo.list() module_names = [] for module in sort_modules(repo_modules): if module in active_modules: module_names.append('* ' + module.real_name) else: module_names.append(' ' + module.real_name) if module_names: found_modules = True if repo.name != repo.path: header = repo.name + ' - ' + repo.path else: header = repo.name cli.echo( cli.format_columns( '[ ] ' + header, module_names, indent=' ', )) cli.echo() if not found_modules: cli.echo('No modules are available.')
def run(self, args): found_modules = False core.echo() active_modules = api.get_active_modules() if args.requirement: active_modules = [ m for m in active_modules if is_partial_match(args.requirement, m) ] if active_modules: found_modules = True core.echo( core.format_columns( "[*] Active", [m.real_name for m in sort_modules(active_modules)], )) core.echo() repos = api.get_repos() if args.repo: repos = [api.get_repo(args.repo)] for repo in repos: if args.requirement: repo_modules = repo.find(args.requirement) else: repo_modules = repo.list() module_names = [] for module in sort_modules(repo_modules): if module in active_modules: module_names.append("* " + module.real_name) else: module_names.append(" " + module.real_name) if module_names: found_modules = True if repo.name != repo.path: header = repo.name + " - " + repo.path else: header = repo.name core.echo( core.format_columns( "[ ] " + header, module_names, indent=" ", )) core.echo() if not found_modules: core.echo("No modules are available.")
def run(self, args): cli.echo() if args.from_repo: from_repo = api.get_repo(args.from_repo) else: from_repo = prompt_for_repo( api.get_repos(), 'Download from', default_repo_name='home', ) if args.to_repo: to_repo = api.get_repo(args.to_repo) else: repos = api.get_repos() repos.remove(from_repo) to_repo = prompt_for_repo( repos, 'Upload to', default_repo_name='home', ) resolver = Resolver([from_repo]) module_specs = resolver.resolve(args.modules) cli.echo() choice = cli.prompt('Copy these modules to %s?[y/n] ' % to_repo.name) if choice.lower() not in ['y', 'yes', 'yup']: cli.echo('Aborted.') sys.exit(1) cli.echo() copier = Copier(to_repo) copier.copy(module_specs, args.overwrite)
def run(self, args): core.echo() if args.from_repo: from_repo = api.get_repo(args.from_repo) else: from_repo = core.prompt_for_repo( api.get_repos(), "Download from", default_repo_name="home", ) if args.to_repo: to_repo = api.get_repo(args.to_repo) else: repos = api.get_repos() repos.remove(from_repo) to_repo = core.prompt_for_repo( repos, "Upload to", default_repo_name="home", ) resolver = Resolver([from_repo]) module_specs = resolver.resolve(args.modules) core.echo() choice = core.prompt("Copy these modules to %s?[y/n] " % to_repo.name) if choice.lower() not in ["y", "yes", "yup"]: core.echo("Aborted.") core.exit(1) core.echo() copier = Copier(to_repo) copier.copy(module_specs, args.overwrite)
def run(self, args): cli.echo() cli.echo('Repos in order of resolution:') for i, repo in enumerate(api.get_repos()): if repo.path == repo.name: cli.echo(' [{}] {} {}'.format( i, type(repo).__name__, repo.path, )) else: cli.echo(' [{}] {} {} {}'.format( i, type(repo).__name__, repo.name, repo.path, ))
def run(self, args): core.echo() if args.from_repo: from_repo = api.get_repo(name=args.from_repo) else: from_repo = core.prompt_for_repo( api.get_repos(), "Choose a repo to remove module from", default_repo_name="home", ) core.echo("- Finding modules in %s..." % from_repo.name) core.echo() modules_to_remove = [] for requirement in args.modules: module = best_match(requirement, from_repo.find(requirement)) if not module: core.echo("Error: %s not found..." % requirement) core.exit(1) core.echo(" %s - %s" % (module.real_name, module.path)) modules_to_remove.append(module) core.echo() choice = core.prompt("Delete these modules?[y/n] ") if choice.lower() not in ["y", "yes", "yup"]: core.echo("Aborted.") core.exit(1) core.echo() core.echo("- Removing modules...") core.echo() for module in modules_to_remove: core.echo(" " + module.real_name) api.remove(module, from_repo) core.echo() core.echo("Successfully removed modules.") core.echo()
def run(self, args): cli.echo() if args.from_repo: from_repo = api.get_repo(name=args.from_repo) else: from_repo = prompt_for_repo( api.get_repos(), 'Choose a repo to remove module from', default_repo_name='home', ) cli.echo('- Finding modules in %s...' % from_repo.name) cli.echo() modules_to_remove = [] for requirement in args.modules: module = best_match(requirement, from_repo.find(requirement)) if not module: cli.echo('Error: %s not found...' % requirement) sys.exit(1) cli.echo(' %s - %s' % (module.real_name, module.path)) modules_to_remove.append(module) cli.echo() choice = cli.prompt('Delete these modules?[y/n] ') if choice.lower() not in ['y', 'yes', 'yup']: cli.echo('Aborted.') sys.exit(1) cli.echo() cli.echo('- Removing modules...') cli.echo() for module in modules_to_remove: cli.echo(' ' + module.real_name) api.remove(module, from_repo) cli.echo() cli.echo('Successfully removed modules.') cli.echo()
def run(self, args): cli.echo() if args.to_repo: to_repo = api.get_repo(name=args.to_repo) else: repos = [r for r in api.get_repos() if isinstance(r, LocalRepo)] to_repo = prompt_for_repo( repos, 'Choose a repo to localize to', default_repo_name='home', ) # Resolve modules try: resolved = api.resolve(args.modules) except ResolveError: sys.exit(1) # Localize modules from remote repos remote_modules = [ spec for spec in resolved if not isinstance(spec.repo, LocalRepo) ] if not len(remote_modules): cli.echo('All modules are already local...') sys.exit() try: localizer = Localizer(to_repo) localizer.localize( remote_modules, overwrite=args.overwrite, ) except Exception as e: cli.echo('Error: ' + str(e)) sys.exit(1)
def run_env(self, environment): file = None repo = False found_in_remote = False for repo in api.get_repos(): for env in repo.list_environments(): if env.name == environment: if isinstance(repo, LocalRepo): file = env.path break else: repo = repo found_in_remote = True if file: break if found_in_remote: cli.echo('Error: Can only edit Environments in local repos.') cli.echo('Found %s in repo %s' % (environment, repo.name)) sys.exit(1) editor = os.getenv('CPENV_EDITOR', os.getenv('EDITOR', 'subl')) cli.echo('Opening %s in %s.' % (file, editor)) shell.run(editor, file)