/* LibMemcached * Copyright (C) 2006-2009 Brian Aker * All rights reserved. * * Use and distribution licensed under the BSD license. See * the COPYING file in the parent directory for full text. * * Summary: * */ #include "libmemcached/common.h" #include #include #include #include #include #include #include #include "utilities.h" #define PROGRAM_NAME "memerror" #define PROGRAM_DESCRIPTION "Translate a memcached errror code into a string." /* Prototypes */ void options_parse(int argc, char *argv[]); static int opt_verbose= 0; int main(int argc, char *argv[]) { unsigned long value; options_parse(argc, argv); if (argc != 2) return 1; value= strtoul(argv[1], (char **) NULL, 10); if (value < MEMCACHED_MAXIMUM_RETURN) { printf("%s\n", memcached_strerror(NULL, (memcached_return_t)value)); } else { fprintf(stderr, "Unknown Error Code\n"); return 1; } return 0; } void options_parse(int argc, char *argv[]) { int option_index= 0; int option_rv; memcached_programs_help_st help_options[]= { {0}, }; static struct option long_options[]= { {(OPTIONSTRING)"version", no_argument, NULL, OPT_VERSION}, {(OPTIONSTRING)"help", no_argument, NULL, OPT_HELP}, {(OPTIONSTRING)"verbose", no_argument, &opt_verbose, OPT_VERBOSE}, {(OPTIONSTRING)"debug", no_argument, &opt_verbose, OPT_DEBUG}, {0, 0, 0, 0}, }; while (1) { option_rv= getopt_long(argc, argv, "Vhvds:", long_options, &option_index); if (option_rv == -1) break; switch (option_rv) { case 0: break; case OPT_VERBOSE: /* --verbose or -v */ opt_verbose = OPT_VERBOSE; break; case OPT_DEBUG: /* --debug or -d */ opt_verbose = OPT_DEBUG; break; case OPT_VERSION: /* --version or -V */ version_command(PROGRAM_NAME); break; case OPT_HELP: /* --help or -h */ help_command(PROGRAM_NAME, PROGRAM_DESCRIPTION, long_options, help_options); break; case '?': /* getopt_long already printed an error message. */ exit(1); default: abort(); } } }