1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
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)
|