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)
27 void pbt_print_version(void)
29 printf("petitboot-twin (" PACKAGE_NAME ") " PACKAGE_VERSION "\n");
32 void pbt_print_usage(void)
36 "Usage: petitboot-twin [-h, --help] [-l, --log log-file]\n"
37 " [-r, --reset-defaults] [-s, --start-daemon]\n"
38 " [-t, --timeout] [-V, --version]\n"
39 " [[-f --fbdev] | [-x --x11]]\n");
43 * pbt_opts_parse - Parse the command line options.
46 int pbt_opts_parse(struct pbt_opts *opts, int argc, char *argv[])
48 static const struct option long_options[] = {
49 {"fbdev", no_argument, NULL, 'f'},
50 {"help", no_argument, NULL, 'h'},
51 {"log", required_argument, NULL, 'l'},
52 {"reset-defaults", no_argument, NULL, 'r'},
53 {"start-daemon", no_argument, NULL, 's'},
54 {"timeout", no_argument, NULL, 't'},
55 {"version", no_argument, NULL, 'V'},
56 {"x11", no_argument, NULL, 'x'},
59 static const char short_options[] = "dfhl:strVx";
60 static const struct pbt_opts default_values = {
61 .backend = pbt_twin_x11,
62 .log_file = "/var/log/petitboot/petitboot-twin.log",
65 *opts = default_values;
68 int c = getopt_long(argc, argv, short_options, long_options,
76 opts->backend = pbt_twin_fbdev;
79 opts->show_help = pbt_opt_yes;
82 opts->log_file = optarg;
85 opts->start_daemon = pbt_opt_yes;
88 opts->use_timeout = pbt_opt_yes;
91 opts->reset_defaults = pbt_opt_yes;
94 opts->show_version = pbt_opt_yes;
97 opts->backend = pbt_twin_x11;
100 opts->show_help = pbt_opt_yes;
105 return optind != argc;