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 [-d, --dry-run] [-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 {"dry-run", no_argument, NULL, 'd'},
51 {"fbdev", no_argument, NULL, 'f'},
52 {"help", no_argument, NULL, 'h'},
53 {"log", required_argument, NULL, 'l'},
54 {"reset-defaults", no_argument, NULL, 'r'},
55 {"start-daemon", no_argument, NULL, 's'},
56 {"timeout", no_argument, NULL, 't'},
57 {"version", no_argument, NULL, 'V'},
58 {"x11", no_argument, NULL, 'x'},
61 static const char short_options[] = "dfhl:strVx";
62 static const struct pbt_opts default_values = {
63 .backend = pbt_twin_x11,
64 .log_file = "/var/log/petitboot/petitboot-twin.log",
67 *opts = default_values;
70 int c = getopt_long(argc, argv, short_options, long_options,
78 opts->dry_run = pbt_opt_yes;
81 opts->backend = pbt_twin_fbdev;
84 opts->show_help = pbt_opt_yes;
87 opts->log_file = optarg;
90 opts->start_daemon = pbt_opt_yes;
93 opts->use_timeout = pbt_opt_yes;
96 opts->reset_defaults = pbt_opt_yes;
99 opts->show_version = pbt_opt_yes;
102 opts->backend = pbt_twin_x11;
105 opts->show_help = pbt_opt_yes;
110 return optind != argc;