#!/usr/bin/env python import json import os import subprocess import sys def main(): """Main entry point""" if len(sys.argv) != 2: sys.exit(f'Invalid parameter. Usage: {sys.argv[0]} \n') cstm_error = '' try: cstm_error = 'Could not open config (~/.smount.json)' with open(os.path.expanduser('~/.smount.json')) as fp: config_dict = json.load(fp) cstm_error = f'Invalid / nonexistent mapping: {sys.argv[1]}' data = config_dict[sys.argv[1]] cstm_error = 'subprocess error' args = ['/usr/bin/sshfs'] if data.get('options'): for opt in data.get('options'): args.extend(['-o', opt]) args.extend([data['src'], data['dest']]) subprocess.check_call(args) except subprocess.CalledProcessError as err: print(f'Execution error: {err}', file=sys.stderr, flush=True) except Exception: print(f'Error: {cstm_error}', file=sys.stderr, flush=True) if __name__ == '__main__': main()