aboutsummaryrefslogtreecommitdiffstats
path: root/bsfs.app
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2022-12-18 14:20:25 +0100
committerMatthias Baumgartner <dev@igsor.net>2022-12-18 14:20:25 +0100
commite94368c75468e3e94382b12705e55d396249eaca (patch)
treee9bfe27e5a641c040cfa8fe747a7cbb28091079c /bsfs.app
parent12d95ed8bda18f2ef9d36190919cb838bfb5efcf (diff)
downloadbsfs-e94368c75468e3e94382b12705e55d396249eaca.tar.gz
bsfs-e94368c75468e3e94382b12705e55d396249eaca.tar.bz2
bsfs-e94368c75468e3e94382b12705e55d396249eaca.zip
bsfs applications
Diffstat (limited to 'bsfs.app')
-rwxr-xr-xbsfs.app52
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 ##