def __init__(self, root_dir, parser, argv): Command.__init__(self, root_dir, parser, argv) if not self.args: self.error("A spec argument is required") spec = self.args[0] try: self.address = Address.parse(root_dir, spec) except: self.error("Problem parsing spec %s: %s" % (spec, traceback.format_exc())) if not self.address.is_meta: self.address.is_meta = self.options.is_meta self.is_ide = self.options.is_ide if self.options.ide_transitivity: if not self.is_ide: self.error("--ide-transitivity only applies when using --ide") elif self.options.ide_transitivity not in _VALID_TRANSITIVITIES: self.error("%s is not a valid value for --ide-transitivity" % self.options.ide_transitivity) self.ide_transitivity = self.options.ide_transitivity else: self.ide_transitivity = _DEFAULT_TRANSITIVITY self.build_args = self.args[1:] if len(self.args) > 1 else []
def _find_command_class_name(root_dir, args): arg = args[0] command_class_name = _BUILD_COMMAND if arg in _BUILD_ALIASES else arg.capitalize() if hasattr(commands, command_class_name): return args[1:] if len(args) > 1 else [], command_class_name if arg.startswith('-'): exit("Unrecognized option: %s" % arg) # If a subcommand is not explicitly provided, default to Build when the 1st argument is a valid # BUILD target address try: Address.parse(root_dir, arg) return args, _BUILD_COMMAND except: exit("Failed to execute pants build: %s" % traceback.format_exc())
def _find_command_class_name(root_dir, args): arg = args[0] command_class_name = _BUILD_COMMAND if arg in _BUILD_ALIASES else arg.capitalize( ) if hasattr(commands, command_class_name): return args[1:] if len(args) > 1 else [], command_class_name if arg.startswith('-'): exit("Unrecognized option: %s" % arg) # If a subcommand is not explicitly provided, default to Build when the 1st argument is a valid # BUILD target address try: Address.parse(root_dir, arg) return args, _BUILD_COMMAND except: exit("Failed to execute pants build: %s" % traceback.format_exc())
def __init__(self, root_dir, parser, argv): Command.__init__(self, root_dir, parser, argv) if len(self.args) is not 1: self.error("Exactly one BUILD address is required.") spec = self.args[0] try: self.address = Address.parse(root_dir, spec) except: self.error("Problem parsing spec %s: %s" % (spec, traceback.format_exc()))
def _parse_addresses(self): addresses = OrderedSet() for spec in self.args: try: if self.options.is_directory_list: for address in scan_addresses(self.root_dir, spec): addresses.add(address) else: addresses.add(Address.parse(self.root_dir, spec)) except: self.error("Problem parsing spec %s: %s" % (spec, traceback.format_exc())) return addresses
def _parse_buildfiles(self): buildfiles = OrderedSet() for spec in self.args: try: if self.options.is_directory_list: for buildfile in BuildFile.scan_buildfiles(self.root_dir, spec): buildfiles.add(buildfile) else: buildfiles.add(Address.parse(self.root_dir, spec).buildfile) except: self.error("Problem parsing spec %s: %s" % (spec, traceback.format_exc())) return buildfiles
def __init__(self, root_dir, parser, argv): Command.__init__(self, root_dir, parser, argv) if not self.args: self.error("A spec argument is required") try: specs_end = self.args.index('--') if len(self.args) > specs_end: self.build_args = self.args.__getslice__( specs_end + 1, len(self.args) + 1) else: self.build_args = [] except ValueError: specs_end = 1 self.build_args = self.args[1:] if len(self.args) > 1 else [] self.targets = OrderedSet() for spec in self.args.__getslice__(0, specs_end): try: address = Address.parse(root_dir, spec) except: self.error("Problem parsing spec %s: %s" % (spec, traceback.format_exc())) try: target = Target.get(address) except: self.error("Problem parsing BUILD target %s: %s" % (address, traceback.format_exc())) try: InternalTarget.check_cycles(target) except CycleException as e: self.error("Target contains an internal dependency cycle: %s" % e) if not target: self.error("Target %s does not exist" % address) if not target.address.is_meta: target.address.is_meta = self.options.is_meta or address.is_meta self.targets.add(target) self.is_ide = self.options.is_ide self.ide_transitivity = self.options.ide_transitivity
def __init__(self, root_dir, parser, argv): Command.__init__(self, root_dir, parser, argv) if len(self.args) is not 1: self.error("Exactly one BUILD address is required.") spec = self.args[0] try: address = Address.parse(root_dir, spec) except: self.error("Problem parsing spec %s: %s" % (spec, traceback.format_exc())) try: self.target = Target.get(address) except: self.error("Problem parsing BUILD target %s: %s" % (address, traceback.format_exc())) if not self.target: self.error("Target %s does not exist" % address)
def _parse_targets(self, root_dir): targets = OrderedSet() for spec in self.args: try: address = Address.parse(root_dir, spec) except: self.error("Problem parsing spec %s: %s" % (spec, traceback.format_exc())) try: target = Target.get(address) except: self.error("Problem parsing target %s: %s" % (address, traceback.format_exc())) if not Doc._is_documentable(target): self.error("Target: %s is not documentable" % address) targets.add(target) return targets
def __init__(self, root_dir, parser, argv): Command.__init__(self, root_dir, parser, argv) if len(self.args) is not 1: self.error("Exactly one BUILD address is required.") if self.options.is_internal_only and self.options.is_external_only: self.error("At most one of external only or internal only can be selected.") spec = self.args[0] try: self.address = Address.parse(root_dir, spec) except: self.error("Problem parsing spec %s: %s" % (spec, traceback.format_exc())) self.is_internal_only = self.options.is_internal_only self.is_external_only = self.options.is_external_only self.is_minimal = self.options.is_minimal self.is_graph = self.options.is_graph
def __init__(self, root_dir, parser, argv): Command.__init__(self, root_dir, parser, argv) if not self.args: self.error("A spec argument is required") try: specs_end = self.args.index('--') if len(self.args) > specs_end: self.build_args = self.args.__getslice__(specs_end + 1, len(self.args) + 1) else: self.build_args = [] except ValueError: specs_end = 1 self.build_args = self.args[1:] if len(self.args) > 1 else [] self.targets = OrderedSet() for spec in self.args.__getslice__(0, specs_end): try: address = Address.parse(root_dir, spec) except: self.error("Problem parsing spec %s: %s" % (spec, traceback.format_exc())) try: target = Target.get(address) except: self.error("Problem parsing BUILD target %s: %s" % (address, traceback.format_exc())) try: InternalTarget.check_cycles(target) except CycleException as e: self.error("Target contains an internal dependency cycle: %s" % e) if not target: self.error("Target %s does not exist" % address) if not target.address.is_meta: target.address.is_meta = self.options.is_meta or address.is_meta self.targets.add(target) self.is_ide = self.options.is_ide self.ide_transitivity = self.options.ide_transitivity
def __init__(self, root_dir, parser, argv): Command.__init__(self, root_dir, parser, argv) if len(self.args) is not 1: self.error("Exactly one BUILD address is required.") if self.options.is_internal_only and self.options.is_external_only: self.error( "At most one of external only or internal only can be selected." ) spec = self.args[0] try: self.address = Address.parse(root_dir, spec) except: self.error("Problem parsing spec %s: %s" % (spec, traceback.format_exc())) self.is_internal_only = self.options.is_internal_only self.is_external_only = self.options.is_external_only self.is_minimal = self.options.is_minimal self.is_graph = self.options.is_graph