def get_packages(self, args, auto_checkout=False, develop=False, checked_out=False): if auto_checkout: packages = set(self.develop.auto_checkout) else: packages = set(self.develop.sources) if develop: packages = packages.intersection(set(self.develop.develeggs)) if checked_out: for name in set(packages): if not self.develop.sources[name].exists(): packages.remove(name) if not args: return packages result = set() regexp = re.compile("|".join("(%s)" % x for x in args)) for name in packages: if not regexp.search(name): continue result.add(name) if len(result) == 0: if len(args) > 1: regexps = "%s or '%s'" % (", ".join( "'%s'" % x for x in args[:-1]), args[-1]) else: regexps = "'%s'" % args[0] logger.error("No package matched %s." % regexps) sys.exit(1) return result
def __call__(self, **kwargs): logger.setLevel(logging.INFO) ch = logging.StreamHandler() ch.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) logger.addHandler(ch) self.parser = ArgumentParser() version = pkg_resources.get_distribution("mr.developer").version self.parser.add_argument('-v', '--version', action='version', version='mr.developer %s' % version) self.parsers = self.parser.add_subparsers(title="commands", metavar="") CmdActivate(self) CmdCheckout(self) CmdDeactivate(self) CmdHelp(self) CmdInfo(self) CmdList(self) CmdPony(self) CmdPurge(self) CmdRebuild(self) CmdReset(self) CmdStatus(self) CmdUpdate(self) args = self.parser.parse_args() try: self.buildout_dir = find_base() except IOError, e: self.parser.print_help() print logger.error("You are not in a path which has mr.developer installed (%s)." % e) return
def __call__(self, args): config = self.develop.config packages = self.get_packages(getattr(args, 'package-regexp'), auto_checkout=args.auto_checkout) try: workingcopies = self.get_workingcopies(self.develop.sources) workingcopies.checkout( sorted(packages), verbose=args.verbose, submodules=self.develop.update_git_submodules, always_accept_server_certificate=self.develop. always_accept_server_certificate) for name in sorted(packages): source = self.develop.sources[name] if not source.get('egg', True): continue config.develop[name] = True logger.info("Activated '%s'." % name) logger.warn( "Don't forget to run buildout again, so the checked out packages are used as develop eggs." ) config.save() except (ValueError, KeyError), e: logger.error(e) sys.exit(1)
def get_packages(self, args, auto_checkout=False, develop=False, checked_out=False): if auto_checkout: packages = set(self.develop.auto_checkout) else: packages = set(self.develop.sources) if develop: packages = packages.intersection(set(self.develop.develeggs)) if checked_out: for name in set(packages): if not self.develop.sources[name].exists(): packages.remove(name) if not args: return packages result = set() regexp = re.compile("|".join("(%s)" % x for x in args)) for name in packages: if not regexp.search(name): continue result.add(name) if len(result) == 0: if len(args) > 1: regexps = "%s or '%s'" % (", ".join("'%s'" % x for x in args[:-1]), args[-1]) else: regexps = "'%s'" % args[0] logger.error("No package matched %s." % regexps) sys.exit(1) return result
def __call__(self, args): sources = {} for name in getattr(args, 'package-name'): if name in self.develop.sources: sources[name] = self.develop.sources[name] else: logger.error('Unknown package %s' % name) sys.exit(1) config = self.develop.config workingcopies = self.get_workingcopies(sources) created = 0 for name, source in sources.items(): if not workingcopies.new_feature( name, verbose=args.verbose, submodules=self.develop.update_git_submodules, always_accept_server_certificate=self.develop. always_accept_server_certificate): continue if not source.get('egg', True): continue created += 1 config.develop[name] = True logger.info("Activated '%s'." % name) if created: logger.warn("Don't forget to update and run buildout again.") config.save()
def __call__(self, **kwargs): logger.setLevel(logging.INFO) ch = logging.StreamHandler() ch.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) logger.addHandler(ch) self.cmd_activate = self.alias_a = CmdActivate(self) self.cmd_checkout = self.alias_co = CmdCheckout(self) self.cmd_deactivate = self.alias_d = CmdDeactivate(self) self.cmd_help = self.alias_h = CmdHelp(self) self.cmd_info = CmdInfo(self) self.cmd_list = self.alias_ls = CmdList(self) self.cmd_pony = CmdPony(self) self.cmd_purge = CmdPurge(self) self.cmd_rebuild = self.alias_rb = CmdRebuild(self) self.cmd_reset = CmdReset(self) self.cmd_status = self.alias_stat = self.alias_st = CmdStatus(self) self.cmd_update = self.alias_up = CmdUpdate(self) try: self.buildout_dir = find_base() except IOError, e: self.cmd_help() print logger.error("You are not in a path which has mr.developer installed (%s)." % e) return
def __call__(self, **kwargs): logger.setLevel(logging.INFO) ch = logging.StreamHandler() ch.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) logger.addHandler(ch) self.parser = ArgumentParser() version = pkg_resources.get_distribution("mr.developer").version self.parser.add_argument('-v', '--version', action='version', version='mr.developer %s' % version) self.parsers = self.parser.add_subparsers(title="commands", metavar="") CmdActivate(self) CmdCheckout(self) CmdDeactivate(self) CmdHelp(self) CmdInfo(self) CmdList(self) CmdPony(self) CmdPurge(self) CmdRebuild(self) CmdReset(self) CmdStatus(self) CmdUpdate(self) args = self.parser.parse_args() try: self.buildout_dir = find_base() except IOError, e: self.parser.print_help() print logger.error( "You are not in a path which has mr.developer installed (%s)." % e) return
def __call__(self, **kwargs): logger.setLevel(logging.INFO) ch = logging.StreamHandler() ch.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) logger.addHandler(ch) self.cmd_activate = self.alias_a = CmdActivate(self) self.cmd_checkout = self.alias_co = CmdCheckout(self) self.cmd_deactivate = self.alias_d = CmdDeactivate(self) self.cmd_help = self.alias_h = CmdHelp(self) self.cmd_info = CmdInfo(self) self.cmd_list = self.alias_ls = CmdList(self) self.cmd_pony = CmdPony(self) self.cmd_rebuild = self.alias_rb = CmdRebuild(self) self.cmd_reset = CmdReset(self) self.cmd_status = self.alias_stat = self.alias_st = CmdStatus(self) self.cmd_update = self.alias_up = CmdUpdate(self) if len(kwargs) == 0: try: installed = load_installed_cfg() except IOError, e: self.cmd_help() print logger.error("You are not in a path which has mr.developer installed (%s)." % e) return if not installed.has_option(FAKE_PART_ID, "__buildout_installed__"): self.cmd_help() print logger.error("You are not in a path which has mr.developer installed (mr.developer not in buildout).") return develop = installed.get(FAKE_PART_ID, "__buildout_installed__") subprocess.call([develop] + sys.argv[1:]) return
def __call__(self): options, args = self.parser.parse_args(sys.argv[2:]) config = self.develop.config # Find out which packages to checkout if len(args) == 0: if options.auto_checkout: packages = self.develop.auto_checkout else: print self.parser.format_help() sys.exit(0) else: packages = self.get_packages(args) if options.auto_checkout: packages = [x for x in packages if x in self.develop.auto_checkout] if len(packages) == 0: if len(args) > 1: regexps = "%s or '%s'" % (", ".join("'%s'" % x for x in args[:-1]), args[-1]) else: regexps = "'%s'" % args[0] logger.error("No package matched %s." % regexps) sys.exit(1) # Actually checkout try: workingcopies = WorkingCopies(self.develop.sources) workingcopies.checkout(packages, verbose=options.verbose) for name in packages: config.develop[name] = True logger.info("Activated '%s'." % name) logger.warn("Don't forget to run buildout again, so the checked out packages are used as develop eggs.") config.save() except (ValueError, KeyError), e: logger.error(e) sys.exit(1)
def __call__(self, *args, **kwargs): logger.setLevel(logging.INFO) ch = logging.StreamHandler() ch.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) logger.addHandler(ch) self.parser = ArgumentParser() version = pkg_resources.get_distribution("mr.developer").version self.parser.add_argument('-v', '--version', action='version', version='mr.developer %s' % version) self.parsers = self.parser.add_subparsers(title="commands", metavar="") for command in get_commands(): command(self) if not args: args = None args = self.parser.parse_args(args) try: self.buildout_dir = find_base() except IOError: if isinstance(args.func, CmdHelp): args.func(args) return self.parser.print_help() print() logger.error( "You are not in a path which has mr.developer installed (%s)." % sys.exc_info()[1]) return if not hasattr(args, 'func'): self.parser.print_help() return self.config = Config(self.buildout_dir) self.original_dir = os.getcwd() atexit.register(self.restore_original_dir) os.chdir(self.buildout_dir) buildout = Buildout(self.config.buildout_settings['config_file'], self.config.buildout_options, self.config.buildout_settings['user_defaults'], self.config.buildout_settings['windows_restart']) root_logger = logging.getLogger() root_logger.handlers = [] root_logger.setLevel(logging.INFO) extension = Extension(buildout) self.sources = extension.get_sources() self.sources_dir = extension.get_sources_dir() self.auto_checkout = extension.get_all_auto_checkout() self.always_checkout = extension.get_always_checkout() self.update_git_submodules = extension.get_update_git_submodules() self.always_accept_server_certificate = extension.get_always_accept_server_certificate( ) develop, self.develeggs, versions = extension.get_develop_info() self.threads = extension.get_threads() args.func(args)
def __call__(self, **kwargs): logger.setLevel(logging.INFO) ch = logging.StreamHandler() ch.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) logger.addHandler(ch) self.parser = ArgumentParser() version = pkg_resources.get_distribution("mr.developer").version self.parser.add_argument('-v', '--version', action='version', version='mr.developer %s' % version) self.parsers = self.parser.add_subparsers(title="commands", metavar="") CmdActivate(self) CmdArguments(self) CmdCheckout(self) CmdDeactivate(self) CmdHelp(self) CmdInfo(self) CmdList(self) CmdPony(self) CmdPurge(self) CmdRebuild(self) CmdReset(self) CmdStatus(self) CmdUpdate(self) args = self.parser.parse_args() try: self.buildout_dir = find_base() except IOError: if isinstance(args.func, CmdHelp): args.func(args) return self.parser.print_help() print logger.error("You are not in a path which has mr.developer installed (%s)." % sys.exc_info()[1]) return self.config = Config(self.buildout_dir) self.original_dir = os.getcwd() atexit.register(self.restore_original_dir) os.chdir(self.buildout_dir) buildout = Buildout(self.config.buildout_settings['config_file'], self.config.buildout_options, self.config.buildout_settings['user_defaults'], self.config.buildout_settings['windows_restart']) root_logger = logging.getLogger() root_logger.handlers = [] root_logger.setLevel(logging.INFO) extension = Extension(buildout) self.sources = extension.get_sources() self.sources_dir = extension.get_sources_dir() self.auto_checkout = extension.get_auto_checkout() self.always_checkout = extension.get_always_checkout() self.update_git_submodules = extension.get_update_git_submodules() self.always_accept_server_certificate = extension.get_always_accept_server_certificate() develop, self.develeggs, versions = extension.get_develop_info() self.threads = extension.get_threads() args.func(args)
def __call__(self, args): config = self.develop.config packages = self.get_packages(getattr(args, 'package-regexp'), auto_checkout=args.auto_checkout) try: workingcopies = WorkingCopies(self.develop.sources) workingcopies.checkout(sorted(packages), verbose=args.verbose) for name in sorted(packages): source = self.develop.sources[name] if not source.get('egg', True): continue config.develop[name] = True logger.info("Activated '%s'." % name) logger.warn("Don't forget to run buildout again, so the checked out packages are used as develop eggs.") config.save() except (ValueError, KeyError), e: logger.error(e) sys.exit(1)
def __call__(self): options, args = self.parser.parse_args(sys.argv[2:]) config = self.develop.config if len(args) == 0 and not options.auto_checkout: print self.parser.format_help() sys.exit(0) packages = self.get_packages(args, auto_checkout=options.auto_checkout) try: workingcopies = WorkingCopies(self.develop.sources) workingcopies.checkout(sorted(packages), verbose=options.verbose) for name in sorted(packages): config.develop[name] = True logger.info("Activated '%s'." % name) logger.warn("Don't forget to run buildout again, so the checked out packages are used as develop eggs.") config.save() except (ValueError, KeyError), e: logger.error(e) sys.exit(1)
def __call__(self, args): config = self.develop.config packages = self.get_packages(getattr(args, 'package-regexp'), auto_checkout=args.auto_checkout) try: workingcopies = self.get_workingcopies(self.develop.sources) workingcopies.checkout(sorted(packages), verbose=args.verbose, submodules=self.develop.update_git_submodules, always_accept_server_certificate=self.develop.always_accept_server_certificate) for name in sorted(packages): source = self.develop.sources[name] if not source.get('egg', True): continue config.develop[name] = True logger.info("Activated '%s'." % name) logger.warning("Don't forget to run buildout again, so the checked out packages are used as develop eggs.") config.save() except (ValueError, KeyError): logger.error(sys.exc_info()[1]) sys.exit(1)
def unknown(self): logger.error("Unknown command '%s'." % sys.argv[1]) logger.info("Type '%s help' for usage." % os.path.basename(sys.argv[0])) sys.exit(1)