def _main__level_two(): parser = argparse.ArgumentParser() add_output_control_options(parser) system = parser.add_argument_group('system configuration') system.add_argument('--arch', dest='architecture', default='x86_64', choices=SUPPORTED_ARCHITECTURES, help='architecture (e.g. x86_64)') system.add_argument('--resolv-conf', metavar='FILE', default='/etc/resolv.conf', help='file to copy nameserver entries from (default: %(default)s)') distros = parser.add_subparsers(title='subcommands (choice of distribution)', description='Run "%(prog)s DISTRIBUTION --help" for details ' 'on options specific to that distribution.', metavar='DISTRIBUTION', help='choice of distribution, pick from:') arch = distros.add_parser('arch') ArchBootstrapper.add_arguments_to(arch) parser.add_argument('target_dir', metavar='DIRECTORY') options = parser.parse_args() messenger = Messenger(options.verbosity, is_color_wanted(options)) run_handle_errors(_main__level_three, messenger, options)
def run_directory_bootstrap(self, architecture, bootloader_approach): self._messenger.info('Bootstrapping %s into "%s"...' % (self.DISTRO_NAME_SHORT, self._abs_mountpoint)) bootstrap = ArchBootstrapper( self._messenger, self._executor, self._abs_mountpoint, self._abs_cache_dir, architecture, self._image_date_triple_or_none, self._mirror_url, self._abs_resolv_conf, ) bootstrap.run()
def get_commands_to_check_for(self): return ArchBootstrapper.get_commands_to_check_for() + [ COMMAND_CHROOT, COMMAND_FIND, COMMAND_RM, COMMAND_SED, COMMAND_WGET, ]
def _main__level_three(messenger, options): stdout_wanted = options.verbosity is VERBOSITY_VERBOSE if stdout_wanted: child_process_stdout = None else: child_process_stdout = open('/dev/null', 'w') executor = Executor(messenger, stdout=child_process_stdout) bootstrap = ArchBootstrapper( messenger, executor, os.path.abspath(options.target_dir), os.path.abspath(options.cache_dir), options.architecture, options.image_date, options.mirror_url, os.path.abspath(options.resolv_conf), ) bootstrap.check_for_commands() bootstrap.unshare() bootstrap.run() if not stdout_wanted: child_process_stdout.close()
def add_parser_to(clazz, distros): arch = distros.add_parser(clazz.DISTRO_KEY, help=clazz.DISTRO_NAME_LONG) arch.set_defaults(**{DISTRO_CLASS_FIELD: clazz}) ArchBootstrapper.add_arguments_to(arch)