2 * Copyright Geoff Levand <geoff@infradead.org>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 2 of the License.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 #if defined(HAVE_CONFIG_H)
28 void pbt_print_version(void)
30 printf("petitboot-twin (" PACKAGE_NAME ") " PACKAGE_VERSION "\n");
33 void pbt_print_usage(void)
37 "Usage: petitboot-twin [-h, --help] [-l, --log log-file]\n"
38 " [-r, --reset-defaults] [-s, --start-daemon]\n"
39 " [-t, --timeout] [-V, --version]\n"
40 " [[-f --fbdev] | [-x --x11]]\n");
44 * pbt_opts_parse - Parse the command line options.
47 int pbt_opts_parse(struct pbt_opts *opts, int argc, char *argv[])
49 static const struct option long_options[] = {
50 {"fbdev", no_argument, NULL, 'f'},
51 {"help", no_argument, NULL, 'h'},
52 {"log", required_argument, NULL, 'l'},
53 {"reset-defaults", no_argument, NULL, 'r'},
54 {"start-daemon", no_argument, NULL, 's'},
55 {"timeout", no_argument, NULL, 't'},
56 {"version", no_argument, NULL, 'V'},
57 {"x11", no_argument, NULL, 'x'},
60 static const char short_options[] = "dfhl:strVx";
61 static const struct pbt_opts default_values = {
62 .backend = pbt_twin_x11,
63 .log_file = "/var/log/petitboot/petitboot-twin.log",
66 *opts = default_values;
69 int c = getopt_long(argc, argv, short_options, long_options,
77 opts->backend = pbt_twin_fbdev;
80 opts->show_help = pbt_opt_yes;
83 opts->log_file = optarg;
86 opts->start_daemon = pbt_opt_yes;
89 opts->use_timeout = pbt_opt_yes;
92 opts->reset_defaults = pbt_opt_yes;
95 opts->show_version = pbt_opt_yes;
98 opts->backend = pbt_twin_x11;
101 opts->show_help = pbt_opt_yes;
106 return optind != argc;