"""BSFS tools. Part of the BlackStar filesystem (bsfs) module. A copy of the license is provided with the project. Author: Matthias Baumgartner, 2022 """ # imports import argparse import typing # module imports import bsfs import bsfs.apps # exports __all__: typing.Sequence[str] = ( 'main', ) # config apps = { 'init' : bsfs.apps.init, 'migrate' : bsfs.apps.migrate, } ## code ## def main(argv): """Black Star File System maintenance tools.""" parser = argparse.ArgumentParser(description=main.__doc__, prog='bsfs') # version parser.add_argument('--version', action='version', version='%(prog)s version {}.{}.{}'.format(*bsfs.version_info)) # application selection parser.add_argument('app', choices=apps.keys(), help='Select the application to run.') # dangling args parser.add_argument('rest', nargs=argparse.REMAINDER) # parse args = parser.parse_args() # run application apps[args.app](args.rest) ## main ## if __name__ == '__main__': import sys main(sys.argv[1:]) ## EOF ##