diff options
author | bk@work.mysql.com <> | 2000-07-31 21:29:14 +0200 |
---|---|---|
committer | bk@work.mysql.com <> | 2000-07-31 21:29:14 +0200 |
commit | f4c589ff6c653d1d2a09c26e46ead3c8a15655d8 (patch) | |
tree | d253a359142dfc1ed247d5d4365d86972ea31109 /extra/my_print_defaults.c | |
parent | 7eec25e393727b16bb916b50d82b0aa3084e065c (diff) | |
download | mariadb-git-f4c589ff6c653d1d2a09c26e46ead3c8a15655d8.tar.gz |
Import changeset
Diffstat (limited to 'extra/my_print_defaults.c')
-rw-r--r-- | extra/my_print_defaults.c | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/extra/my_print_defaults.c b/extra/my_print_defaults.c new file mode 100644 index 00000000000..a6e67e4949e --- /dev/null +++ b/extra/my_print_defaults.c @@ -0,0 +1,125 @@ +/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA */ + +/* +** print_default.c: +** Print all parameters in a default file that will be given to some program. +** +** Written by Monty +*/ + +#include <global.h> +#include <my_sys.h> +#include <getopt.h> + +const char *config_file="my"; /* Default config file */ + +static struct option long_options[] = +{ + {"config-file", required_argument, 0, 'c'}, + {"defaults-file", required_argument, 0, 'c'}, + {"no-defaults", no_argument, 0, 'd'}, + {"help", no_argument, 0, '?'}, + {"version", no_argument, 0, 'V'}, + {0, 0, 0, 0} +}; + +static void usage(my_bool version) +{ + printf("%s Ver 1.1 for %s at %s\n",my_progname,SYSTEM_TYPE, + MACHINE_TYPE); + if (version) + return; + puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n"); + puts("Prints all arguments that is give to some program using the default files"); + printf("Usage: %s [OPTIONS] groups\n",my_progname); + printf("\n\ + -c, --config-file=# --defaults-file=#\n\ + The config file to use (default '%s')\n\ + --no-defaults Return an empty string (useful for scripts)\n\ + -?, --help Display this help message and exit.\n\ + -V, --version Output version information and exit.\n", + config_file); + printf("\nExample usage: %s --config-file=my client mysql\n",my_progname); +} + +static int get_options(int *argc,char ***argv) +{ + int c,option_index; + + while ((c=getopt_long(*argc,*argv,"c:V?I", + long_options, &option_index)) != EOF) + { + switch (c) { + case 'c': + config_file=optarg; + break; + case 'n': + exit(0); + case 'I': + case '?': + usage(0); + exit(0); + case 'V': + usage(1); + exit(0); + } + } + (*argc)-=optind; + (*argv)+=optind; + if (*argc < 1) + { + usage(0); + return 1; + } + return 0; +} + +int main(int argc, char **argv) +{ + int count; + char **load_default_groups, *tmp_arguments[2], + **argument, **arguments; + MY_INIT(argv[0]); + + /* + ** Check out the args + */ + if (get_options(&argc,&argv)) + exit(1); + if (!(load_default_groups=(char**) my_malloc((argc+2)*sizeof(char*), + MYF(MY_WME)))) + exit(1); + + for (count=0; *argv ; argv++,count++) + load_default_groups[count]= *argv; + load_default_groups[count]=0; + + count=1; + arguments=tmp_arguments; + arguments[0]=my_progname; + arguments[1]=0; + load_defaults(config_file, (const char **) load_default_groups, + &count, &arguments); + + for (argument= arguments+1 ; *argument ; argument++) + puts(*argument); + my_free((char*) load_default_groups,MYF(0)); + free_defaults(arguments); + + exit(0); +} |