diff options
author | Matthias Baumgartner <dev@igsor.net> | 2022-12-18 14:20:25 +0100 |
---|---|---|
committer | Matthias Baumgartner <dev@igsor.net> | 2022-12-18 14:20:25 +0100 |
commit | e94368c75468e3e94382b12705e55d396249eaca (patch) | |
tree | e9bfe27e5a641c040cfa8fe747a7cbb28091079c /bsfs.app | |
parent | 12d95ed8bda18f2ef9d36190919cb838bfb5efcf (diff) | |
download | bsfs-e94368c75468e3e94382b12705e55d396249eaca.tar.gz bsfs-e94368c75468e3e94382b12705e55d396249eaca.tar.bz2 bsfs-e94368c75468e3e94382b12705e55d396249eaca.zip |
bsfs applications
Diffstat (limited to 'bsfs.app')
-rwxr-xr-x | bsfs.app | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/bsfs.app b/bsfs.app new file mode 100755 index 0000000..babacbb --- /dev/null +++ b/bsfs.app @@ -0,0 +1,52 @@ +"""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 ## |