Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
hubboss / boss / app / boss.py
Size: Mime:
import argparse

from . import commands
from .. import config

class Boss(object):
    def __init__(self, args):
        self.parser = self.create_parser()
        self.parsed_args = self.parser.parse_args(args)

        # TODO: initialize the config *here* and not in config module load
        self.config = config.config

    def run(self):
        return self.parsed_args.func(**vars(self.parsed_args))

    def create_parser(self):
        parser = argparse.ArgumentParser()
        subparsers = parser.add_subparsers(help='commands')

        for command in commands.__all__:
            getattr(commands, command).configure_parser(self, subparsers.add_parser)

        return parser

    @classmethod
    def main(cls, *args):
        return cls(args).run()