from os import path, listdir from glob import glob from . import __version__ import click @click.group() @click.version_option(__version__) def cli(): pass @click.command() @click.option('-o', '--outfile', type=click.File(mode='wb'), help='Output Filename (extension will be added automatically)') @click.option('-t', '--theme', default='default', type=click.Choice(['default', 'OSH Park', 'Blue', 'Transparent Copper', 'Transparent Multilayer'], case_sensitive=False), help='Select render theme') @click.option('-w', '--width', type=click.INT, help='Maximum width') @click.option('-h', '--height', type=click.INT, help='Maximum height') @click.option('-v', '--verbose', is_flag=True, help='Increase verbosity of the output') @click.argument('filenames', nargs=-1, type=click.Path(exists=True)) def render(outfile, theme, width, height, verbose, filenames): """Render gerber files to image. If a directory is provided, it should be provided alone and should contain the gerber files for a single PCB.""" if len(filenames) == 0: raise click.UsageError(message='No files or folders provided') if len(filenames) > 1: for f in filenames: if path.isdir(f): raise click.UsageError(message='If a directory is provided, it should be provided alone and should contain the gerber files for a single PCB') # list files if folder id given if len(filenames) == 1 and path.isdir(filenames[0]): filenames = listdir(filenames[0]) #filenames = [f for f in glob(f'{filenames[0]}/*.txt')] click.echo(f'render {filenames} with theme {theme}') cli.add_command(render)