diff --git a/formtool/__main__.py b/formtool/__main__.py index 7e50b6c..d25b6ea 100644 --- a/formtool/__main__.py +++ b/formtool/__main__.py @@ -44,17 +44,6 @@ suffixes = { } -def cli(fmt: str | None = None): - agupa = argparse.ArgumentParser("formtool", "ffmpeg shortcuts") - if fmt is None: - agupa.add_argument('format', choices=defaults.keys(), help="Compression format to use.") - agupa.add_argument('files', nargs='+', help="One or more files to compress.") - agupa.add_argument('--keep', action='store_true', help="Keep original files after compression.") - args, passthrough = agupa.parse_known_args() - - main(fmt or args.format, args.files, args.keep, passthrough) - - def main(fmt: str, files: list[str], keep: bool, passthrough: list[str]): # Process each file provided on the command line for inf in files: diff --git a/formtool/cli.py b/formtool/cli.py new file mode 100644 index 0000000..d7d3fd0 --- /dev/null +++ b/formtool/cli.py @@ -0,0 +1,34 @@ +import argparse + +from .__main__ import defaults, main + + +def cli(fmt: str | None = None): + agupa = argparse.ArgumentParser("formtool", "ffmpeg shortcuts") + if fmt is None: + agupa.add_argument('format', choices=defaults.keys(), help="Compression format to use.") + agupa.add_argument('files', nargs='+', help="One or more files to compress.") + agupa.add_argument('--keep', action='store_true', help="Keep original files after compression.") + args, passthrough = agupa.parse_known_args() + + main(fmt or args.format, args.files, args.keep, passthrough) + + +def av1(): + cli('av1') + + +def x264(): + cli('x264') + + +def mp3(): + cli('mp3') + + +def opus(): + cli('opus') + + +def flac(): + cli('flac') diff --git a/pyproject.toml b/pyproject.toml index 1467ddd..64cc4fa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,4 +9,9 @@ dependencies = [ ] [project.scripts] -formtool = "formtool.__main__:cli" +formtool = "formtool.cli:cli" +fav1 = "formtool.av1:main" +fx264 = "formtool.x264:main" +fmp3 = "formtool.mp3:main" +fopus = "formtool.opus:main" +fflac = "formtool.flac:main"