def main(argv): rcfilename = acmd.get_rcfilename() if not os.path.isfile(rcfilename): acmd.setup_rcfile(rcfilename) config = acmd.read_config(rcfilename) load_projects(config.projects) sysargs, cmdargs = split_argv(argv) (options, args) = parser.parse_args(sysargs) acmd.init_log(options.verbose) if options.show_version: sys.stdout.write("{}\n".format(acmd.__version__)) sys.exit(0) if len(args) <= 1: parser.print_help(file=sys.stderr) sys.exit(acmd.USER_ERROR) status = run(options, config, args, cmdargs) sys.exit(status)
def execute(_, argv): options, args = parser.parse_args(argv) command = get_action(args) if command not in VALID_COMMANDS: error("Unknown command '{}'".format(command)) return USER_ERROR filename = options.rcfile or acmd.get_rcfilename() if filename == '': error("Missing filename argument") return USER_ERROR if not os.path.isfile(filename): error("Requested file {} does not exist".format(filename)) return USER_ERROR if not os.access(filename, os.R_OK): error("Requested file {} lacks read access".format(filename)) return USER_ERROR if not os.access(filename, os.W_OK): error("Requested file {} lacks write access".format(filename)) return USER_ERROR if command == 'format': return format_config(filename) elif command == 'set-master': return set_master_password() server_name = get_argument(args) if server_name == '': error("Missing server name argument") return USER_ERROR if command == 'encrypt': return encrypt_config(server_name, filename) elif command == 'decrypt': return decrypt_config(server_name, filename) else: raise Exception('Internal error: {}'.format(command))