From f06aef8c75fbbf1c6bb386c1eb8fc6f7bdcf38ba Mon Sep 17 00:00:00 2001 From: shagi Date: Fri, 6 Nov 2020 16:27:16 +0100 Subject: [PATCH] Use negromate.commands entry_point --- negromate/web/commands/__init__.py | 44 ----------------------------- negromate/web/commands/thumbnail.py | 22 --------------- setup.cfg | 9 ++++-- 3 files changed, 6 insertions(+), 69 deletions(-) delete mode 100644 negromate/web/commands/thumbnail.py diff --git a/negromate/web/commands/__init__.py b/negromate/web/commands/__init__.py index f1d3234..e69de29 100644 --- a/negromate/web/commands/__init__.py +++ b/negromate/web/commands/__init__.py @@ -1,44 +0,0 @@ -import argparse -import sys - -from . import run, build, thumbnail, rsync, ipfs - - -def main(): - """ - Build parser for all the commands and launch appropiate command. - - Each command must be a module with at least the following members: - - * name: String with the command name. Will be used for - argparse subcommand. - * help_text: String with the help text. - * options: Function to build the parser of the command. Takes - one parametter, the argparser parser instance for this - subcommand. - * run: Function that runs the actual command. Takes one - parametter, the Namespace with the arguments. - """ - commands = [ - build, - run, - thumbnail, - rsync, - ipfs, - ] - - parser = argparse.ArgumentParser() - parser.set_defaults(command=None) - subparsers = parser.add_subparsers() - for command in commands: - command_parser = subparsers.add_parser(command.name, help=command.help_text) - command_parser.set_defaults(command=command.name) - command.options(command_parser) - - args = parser.parse_args() - if args.command is None: - parser.print_usage() - else: - for command in commands: - if args.command == command.name: - command.run(args) diff --git a/negromate/web/commands/thumbnail.py b/negromate/web/commands/thumbnail.py deleted file mode 100644 index 31bad79..0000000 --- a/negromate/web/commands/thumbnail.py +++ /dev/null @@ -1,22 +0,0 @@ -from pathlib import Path - -from negromate.songs.utils import generate_cover, generate_thumbnail - -name = 'thumbnail' -help_text = 'Generate cover and thumbnail for a video.' - - -def options(parser): - parser.add_argument( - 'video', help="Video of the song.", type=Path) - parser.add_argument( - 'second', type=int, - help='Take snapshot at this second.') - - -def run(args): - video = args.video - cover = video.parent / 'cover.jpg' - thumbnail = video.parent / 'thumb.jpg' - generate_cover(video, cover, args.second) - generate_thumbnail(cover, thumbnail) diff --git a/setup.cfg b/setup.cfg index 2b4ea3e..f5e022e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -23,11 +23,14 @@ python_requires = >= 3.4 install_requires = Jinja2 ass ==0.4.4 - negromate.songs ==1.0 + negromate.songs ==1.1 [options.entry_points] -console_scripts = - negromate-web = negromate.web.commands:main +negromate.commands = + build = negromate.web.commands.build + run = negromate.web.commands.run + rsync = negromate.web.commands.rsync + ipfs = negromate.web.commands.ipfs [bdist_wheel] # This flag says to generate wheels that support both Python 2 and Python