import subprocess import argparse import configparser cp = configparser.ConfigParser(interpolation=configparser.ExtendedInterpolation()) cp.read('hostnames.ini') if __name__ == "__main__": parser = argparse.ArgumentParser() group = parser.add_mutually_exclusive_group(required=True) group.add_argument('-o','--wan',action = 'store_true') group.add_argument('-l','--lan',action = 'store_true') parser.add_argument('-p','--pre-script', help= 'script to run before connecting(in config dir)') parser.add_argument('name',help='name of config file to use (sans .cfg)') parser.add_argument('arg',nargs = '*') args = parser.parse_args() if pre: pre = '~/.ssh/config/{}'.format(args.pre_script) subprocess.check_call(pre) if args.wan: host = cp['wan'][args.name] elif args.lan: host = cp['lan'][args.name] cmd = ['ssh','-F','~/.ssh/{}.cfg'.format(args.name),host] + args.arg subprocess.call(cmd)