def prompt_name(def_name): prompt = """ {fg_yellow}More Attribution{style_reset_all} Used for maintainer, copyright, etc Your Real Name? """ return question(prompt, default=def_name)
def prompt_user(): prompt = """ {fg_yellow}Attribution{style_reset_all} Used for maintainer, copyright, etc Your GitHub Username? """ return question(prompt, default=git_get_username())
def _question(*args, **kwargs): """Ugly workaround until 'milc' learns to display a repromt msg """ # TODO: Remove this once milc.questions.question handles reprompt messages reprompt = kwargs["reprompt"] del kwargs["reprompt"] validate = kwargs["validate"] del kwargs["validate"] prompt = args[0] ret = None while not ret: ret = question(prompt, **kwargs) if not validate(ret): ret = None prompt = reprompt return ret
def new_keyboard(cli): """Creates a new keyboard. """ cli.log.info('{style_bright}Generating a new QMK keyboard directory{style_normal}') cli.echo('') # Get keyboard name new_keyboard_name = None while not new_keyboard_name: new_keyboard_name = cli.args.keyboard if cli.args.keyboard else question('Keyboard Name:') if not validate_keyboard_name(new_keyboard_name): cli.log.error('Keyboard names must contain only {fg_cyan}lowercase a-z{fg_reset}, {fg_cyan}0-9{fg_reset}, and {fg_cyan}_{fg_reset}! Please choose a different name.') # Exit if passed by arg if cli.args.keyboard: return False new_keyboard_name = None continue keyboard_path = qmk.path.keyboard(new_keyboard_name) if keyboard_path.exists(): cli.log.error(f'Keyboard {{fg_cyan}}{new_keyboard_name}{{fg_reset}} already exists! Please choose a different name.') # Exit if passed by arg if cli.args.keyboard: return False new_keyboard_name = None # Get keyboard type keyboard_type = cli.args.type if cli.args.type else choice('Keyboard Type:', KEYBOARD_TYPES, default=0) # Get username user_name = None while not user_name: user_name = question('Your Name:', default=find_user_name()) if not user_name: cli.log.error('You didn\'t provide a username, and we couldn\'t find one set in your QMK or Git configs. Please try again.') # Exit if passed by arg if cli.args.username: return False # Copy all the files copy_templates(keyboard_type, keyboard_path) # Replace all the placeholders keyboard_basename = keyboard_path.name replacements = [ ('%YEAR%', str(date.today().year)), ('%KEYBOARD%', keyboard_basename), ('%YOUR_NAME%', user_name), ] filenames = [ keyboard_path / 'config.h', keyboard_path / 'info.json', keyboard_path / 'readme.md', keyboard_path / f'{keyboard_basename}.c', keyboard_path / f'{keyboard_basename}.h', keyboard_path / 'keymaps/default/readme.md', keyboard_path / 'keymaps/default/keymap.c', ] replace_placeholders(replacements, filenames) cli.echo('') cli.log.info(f'{{fg_green}}Created a new keyboard called {{fg_cyan}}{new_keyboard_name}{{fg_green}}.{{fg_reset}}') cli.log.info(f'To start working on things, `cd` into {{fg_cyan}}{keyboard_path}{{fg_reset}},') cli.log.info('or open the directory in your preferred text editor.')
def new_keyboard(cli): """Creates a new keyboard. """ cli.log.info('{style_bright}Generating a new QMK keyboard directory{style_normal}') cli.echo('') # Get keyboard name new_keyboard_name = None while not new_keyboard_name: new_keyboard_name = cli.args.keyboard if cli.args.keyboard else question('Keyboard Name:') if not validate_keyboard_name(new_keyboard_name): cli.log.error('Keyboard names must contain only {fg_cyan}lowercase a-z{fg_reset}, {fg_cyan}0-9{fg_reset}, and {fg_cyan}_{fg_reset}! Please choose a different name.') # Exit if passed by arg if cli.args.keyboard: return False new_keyboard_name = None continue keyboard_path = qmk.path.keyboard(new_keyboard_name) if keyboard_path.exists(): cli.log.error(f'Keyboard {{fg_cyan}}{new_keyboard_name}{{fg_reset}} already exists! Please choose a different name.') # Exit if passed by arg if cli.args.keyboard: return False new_keyboard_name = None # Get keyboard type keyboard_type = cli.args.type if cli.args.type else choice('Keyboard Type:', KEYBOARD_TYPES, default=0) # Get username user_name = None while not user_name: user_name = question('Your GitHub User Name:', default=find_user_name()) if not user_name: cli.log.error('You didn\'t provide a username, and we couldn\'t find one set in your QMK or Git configs. Please try again.') # Exit if passed by arg if cli.args.username: return False real_name = None while not real_name: real_name = question('Your real name:', default=user_name) keyboard_basename = keyboard_path.name replacements = { "YEAR": str(date.today().year), "KEYBOARD": keyboard_basename, "USER_NAME": user_name, "YOUR_NAME": real_name, } template_dir = Path('data/templates') template_tree(template_dir / 'base', keyboard_path, replacements) template_tree(template_dir / keyboard_type, keyboard_path, replacements) cli.echo('') cli.log.info(f'{{fg_green}}Created a new keyboard called {{fg_cyan}}{new_keyboard_name}{{fg_green}}.{{fg_reset}}') cli.log.info(f'To start working on things, `cd` into {{fg_cyan}}{keyboard_path}{{fg_reset}},') cli.log.info('or open the directory in your preferred text editor.')