X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/ba64c04f9340013d25138b40b92e51e4ad5bacd8..4127b85f2c1af611bb70d5ab469adac126d0a7a4:/sdk/python/bin/arv-mount diff --git a/sdk/python/bin/arv-mount b/sdk/python/bin/arv-mount index e619b5cda8..ac9cd9bcf6 100755 --- a/sdk/python/bin/arv-mount +++ b/sdk/python/bin/arv-mount @@ -3,17 +3,23 @@ from arvados.fuse import * import arvados import subprocess +import argparse if __name__ == '__main__': - api = arvados.api() - # Handle command line parameters parser = argparse.ArgumentParser( - description='Mount Keep data under the local filesystem.') + description='Mount Keep data under the local filesystem.', + epilog=""" +Note: When using the --exec feature, you must either specify the +mountpoint before --exec, or mark the end of your --exec arguments +with "--". +""") parser.add_argument('mountpoint', type=str, help="""Mount point.""") parser.add_argument('--collection', type=str, help="""Collection locator""") parser.add_argument('--debug', action='store_true', help="""Debug mode""") - parser.add_argument('--exec', type=str, help="""Mount, run a command, then unmount and exit""", dest="ex") + parser.add_argument('--exec', type=str, nargs=argparse.REMAINDER, + dest="exec_args", metavar=('command', 'args', '...', '--'), + help="""Mount, run a command, then unmount and exit""") args = parser.parse_args() @@ -38,7 +44,7 @@ if __name__ == '__main__': # Initialize the fuse connection llfuse.init(operations, args.mountpoint, opts) - if args.ex: + if args.exec_args: t = threading.Thread(None, lambda: llfuse.main()) t.start() @@ -46,7 +52,7 @@ if __name__ == '__main__': operations.initlock.wait() try: - rc = subprocess.call(args.ex, shell=True) + rc = subprocess.call(args.exec_args, shell=False) except: rc = 255 finally: