diff --git a/requirements-swh.txt b/requirements-swh.txt index 2d1bbce..24f0a5c 100644 --- a/requirements-swh.txt +++ b/requirements-swh.txt @@ -1 +1,2 @@ # Add here internal Software Heritage dependencies, one per line. +swh.core diff --git a/setup.py b/setup.py index 9f78a71..46c60f1 100755 --- a/setup.py +++ b/setup.py @@ -1,73 +1,72 @@ #!/usr/bin/env python3 # Copyright (C) 2015-2018 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information from setuptools import setup, find_packages from os import path from io import open here = path.abspath(path.dirname(__file__)) # Get the long description from the README file with open(path.join(here, 'README.md'), encoding='utf-8') as f: long_description = f.read() def parse_requirements(name=None): if name: reqf = 'requirements-%s.txt' % name else: reqf = 'requirements.txt' requirements = [] if not path.exists(reqf): return requirements with open(reqf) as f: for line in f.readlines(): line = line.strip() if not line or line.startswith('#'): continue requirements.append(line) return requirements # Edit this part to match your module. # Full sample: # https://forge.softwareheritage.org/diffusion/DCORE/browse/master/setup.py setup( name='swh.', # example: swh.loader.pypi description='Software Heritage ', long_description=long_description, long_description_content_type='text/markdown', author='Software Heritage developers', author_email='swh-devel@inria.fr', url='https://forge.softwareheritage.org/diffusion/', packages=find_packages(), # packages's modules install_requires=parse_requirements() + parse_requirements('swh'), tests_require=parse_requirements('test'), setup_requires=['vcversioner'], extras_require={'testing': parse_requirements('test')}, vcversioner={}, include_package_data=True, - entry_points={ - 'console_scripts': [ # cli tools provided by this package, eg. - # 'swh-my-command=swh..cli:main', - ] - }, + entry_points=''' + [swh.cli.subcommands] + =swh..cli:cli + ''', classifiers=[ "Programming Language :: Python :: 3", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Development Status :: 3 - Alpha", ], project_urls={ 'Bug Reports': 'https://forge.softwareheritage.org/maniphest', 'Funding': 'https://www.softwareheritage.org/donate', 'Source': 'https://forge.softwareheritage.org/source/swh-', }, ) diff --git a/swh/foo/cli.py b/swh/foo/cli.py new file mode 100644 index 0000000..6a0529f --- /dev/null +++ b/swh/foo/cli.py @@ -0,0 +1,18 @@ +import click + +from swh.core.cli import CONTEXT_SETTINGS + + +@click.group(name='foo', context_settings=CONTEXT_SETTINGS) +@click.pass_context +def cli(ctx): + """Foo main command. + """ + + +@cli.command() +@click.option('--bar', help='Something') +@click.pass_context +def bar(ctx, bar): + '''Do something.''' + click.echo('bar')