sonntagsgesicht/auxilium

View on GitHub
auxilium/add_arguments/python.py

Summary

Maintainability
A
0 mins
Test Coverage
# -*- coding: utf-8 -*-

# auxilium
# --------
# Python project for an automated test and deploy toolkit.
#
# Author:   sonntagsgesicht
# Version:  0.2.4, copyright Wednesday, 20 October 2021
# Website:  https://github.com/sonntagsgesicht/auxilium
# License:  Apache License 2.0 (see LICENSE file)


from argparse import ArgumentParser
from configparser import ConfigParser


def add_arguments(parser=None, config=ConfigParser()):
    parser = ArgumentParser() if parser is None else parser
    invoke_opts = parser.add_mutually_exclusive_group()
    invoke_opts.set_defaults(mode='default')
    invoke_opts.add_argument(
        '-c',
        metavar='cmd',
        help='program passed in as string (terminates option list)')
    invoke_opts.add_argument(
        '-m',
        metavar='mod',
        help='run library module as a script (terminates option list)')
    invoke_opts.add_argument(
        '-f',
        metavar='file',
        help='program read from script file')
    invoke_opts.add_argument(
        '-',
        dest='stdin',
        action='store_const',
        const=True,
        help='program read from stdin (default; interactive mode if a tty)')
    arg = parser.add_argument_group()

    arg.add_argument(
        'arg',
        nargs='*',
        help='arguments passed to program in sys.argv[1:]')
    return parser