Source code for abed.ui

# -*- coding: utf-8 -*-


import sys

from .conf import settings
from .help import get_help, get_command_help
from .models import Abed
from .io import error


[docs]def parse_command(command): choices = list(Abed.commands) choices.append("help") if not command in choices: print("abed: '%s' is not a valid command. See 'abed help'" % command) print("") raise SystemExit return command
[docs]def parse_arguments(): cmdargs = sys.argv[1:] if len(cmdargs) == 0: print(get_help()) raise SystemExit args = {"skip_cache": False, "cmd": None, "topic": None} idx = 0 args["cmd"] = parse_command(cmdargs[idx]) idx += 1 if args["cmd"] == "help" and len(cmdargs) > idx: args["topic"] = parse_command(cmdargs[idx]) elif args["cmd"] == "parse_results" and len(cmdargs) > idx: if cmdargs[idx] in ["-s", "--skip-cache"]: args["skip_cache"] = True else: error("Unknown command line argument: %s." % cmdargs[idx]) error("See 'abed help parse_results' for help.") raise SystemExit elif len(cmdargs) > idx: error("Unknown command line argument: %s." % cmdargs[idx]) error("See 'abed help' for help.") raise SystemExit return args
[docs]def main(): args = parse_arguments() if args["cmd"] == "help": if args["topic"] is None: print(get_help()) raise SystemExit else: print(get_command_help(args["topic"])) raise SystemExit skip_init = False if args["cmd"] == "reload_tasks": skip_init = True if settings is None: if not args["cmd"] == "init": error( "No ABED configuration file found in this directory. " "Run 'abed init' to initialize one. Exiting." ) raise SystemExit skip_init = True abed = Abed(skip_init=skip_init, skip_cache=args["skip_cache"]) try: getattr(abed, args["cmd"])() except KeyboardInterrupt: pass