Exemple #1
0
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)
Exemple #2
0
    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))