78924f966f
Changed travis to call the tests directly
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
from argparse import ArgumentParser
|
|
from subprocess import call as _call
|
|
|
|
parser = ArgumentParser(description='Development scripts for OpenSlides')
|
|
subparsers = parser.add_subparsers()
|
|
|
|
|
|
def command(*args, **kwargs):
|
|
"""
|
|
Decorator to create a argparse command.
|
|
|
|
The arguments to this decorator are used as arguments for the argparse
|
|
command.
|
|
"""
|
|
class decorator:
|
|
def __init__(self, func):
|
|
self.parser = subparsers.add_parser(*args, **kwargs)
|
|
self.parser.set_defaults(func=func)
|
|
self.func = func
|
|
|
|
def __call__(self, *args, **kwargs):
|
|
return self.func(*args, **kwargs)
|
|
|
|
return decorator
|
|
|
|
|
|
def argument(*args, **kwargs):
|
|
"""
|
|
Decorator to create arguments for argparse commands.
|
|
|
|
The arguments to this decorator are used as arguments for the argparse
|
|
argument.
|
|
|
|
Does only work if the decorated function was decorated with the
|
|
command-decorator before.
|
|
"""
|
|
def decorator(func):
|
|
func.parser.add_argument(*args, **kwargs)
|
|
def wrapper(*func_args, **func_kwargs):
|
|
return func(*func_args, **func_kwargs)
|
|
return wrapper
|
|
return decorator
|
|
|
|
|
|
def call(*args, **kwargs):
|
|
"""
|
|
Calls a command in a shell.
|
|
"""
|
|
return _call(shell=True, *args, **kwargs)
|