add new pcb-tools cli

refactor
Ricardo (XenGi) Band 2021-06-04 02:08:13 +02:00 zatwierdzone przez jaseg
rodzic ea1d14b7f3
commit 8bad573131
3 zmienionych plików z 47 dodań i 2 usunięć

Wyświetl plik

@ -0,0 +1 @@
__version__ = '0.0.1'

39
gerbonara/cli.py 100644
Wyświetl plik

@ -0,0 +1,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)

Wyświetl plik

@ -13,7 +13,7 @@ def long_description():
def version():
with open(join(abspath(dirname(__file__)), 'gerber/__init__.py')) as fh:
with open(join(abspath(dirname(__file__)), 'gerbonara/__init__.py')) as fh:
for line in fh:
if line.startswith('__version__'):
ver = line.split("'")[1]
@ -43,7 +43,12 @@ setup(
'Tracker': 'https://gitlab.com/gerbonara/gerbonara/issues',
},
packages=find_packages(exclude=['tests']),
install_requires=[],
install_requires=['click'],
entry_points={
'console_scripts': [
'gerbonara = gerbonara.cli:cli',
],
},
classifiers=[
'Development Status :: 1 - Planning',
#'Development Status :: 3 - Alpha',