/* This file is part of GNU Pies. -*- c -*- Copyright (C) 2008, 2009, 2010, 2011 Sergey Poznyakoff GNU Pies is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GNU Pies 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 General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Pies. If not, see . */ OPTIONS_BEGIN("pies", [], [<>], [], [], []) GROUP(Operation Mode) OPTION(config-file,c,FILE, []) BEGIN add_config (current_syntax, optarg); END OPTION(config-help,,, []) BEGIN config_help (); exit (0); END OPTION(,E,, []) BEGIN preprocess_only = 1; END OPTION(force,,, []) BEGIN force_option = 1; END OPTION(foreground,,, []) BEGIN log_to_stderr_only = 1; foreground = 1; END OPTION(inetd,i,, []) BEGIN if (!instance) instance = "inetd"; current_syntax = CONF_INETD; inetd_mode = 1; END OPTION(instance,,NAME, []) BEGIN instance = optarg; END OPTION(rate,,NUMBER, []) BEGIN char *p; default_max_rate = strtoul (optarg, &p, 10); if (*p) { logmsg (LOG_ERR, _("not a number: %s"), optarg); exit (EX_USAGE); } END OPTION(stderr,,, []) BEGIN log_to_stderr_only = 1; END OPTION(syntax,,[<{pies|inetd|meta1}>], []) BEGIN if (str_to_config_syntax (optarg, ¤t_syntax)) { logmsg (LOG_ERR, _("unknown syntax type: %s"), optarg); exit (EX_USAGE); } END OPTION(syslog,,, []) BEGIN log_to_stderr_only = 0; END OPTION(lint,t,, []) BEGIN log_to_stderr_only = 1; lint_mode = 1; END GROUP(Preprocessor) OPTION(define,D,[], []) BEGIN add_pp_option ("-D", optarg); END OPTION(undefine,U,NAME, []) BEGIN add_pp_option ("-U", optarg); END GROUP(Component Management) OPTION(reload,r,, []) ALIAS(hup) BEGIN log_to_stderr_only = 1; command = COM_RELOAD; END OPTION(restart-component,R,, []) BEGIN log_to_stderr_only = 1; command = COM_RESTART; END OPTION(status,s,, []) BEGIN log_to_stderr_only = 1; command = COM_STATUS; END OPTION(stop,S,, []) BEGIN log_to_stderr_only = 1; command = COM_STOP; END GROUP(Debugging and Additional Diagnostics) OPTION(dump-depmap,,, []) BEGIN log_to_stderr_only = 1; command = COM_DUMP_DEPMAP; END OPTION(dump-prereq,,, []) BEGIN log_to_stderr_only = 1; command = COM_DUMP_PREREQ; END OPTION(source-info,,, []) BEGIN source_info_option = 1; END OPTION(debug,x,LEVEL, []) BEGIN debug_level = strtoul (optarg, NULL, 0); END OPTIONS_END void parse_options(int argc, char *argv[], int *index) { GETOPT(argc, argv, *index) }