From f54678ced932d4994e026b6688c5451313e7c9ea Mon Sep 17 00:00:00 2001 From: James Maki Date: Fri, 23 Apr 2010 16:14:25 -0500 Subject: first commit --- src/upgrade_reboot.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 src/upgrade_reboot.c (limited to 'src/upgrade_reboot.c') diff --git a/src/upgrade_reboot.c b/src/upgrade_reboot.c new file mode 100644 index 0000000..6a8647b --- /dev/null +++ b/src/upgrade_reboot.c @@ -0,0 +1,92 @@ +/* + * Reboot command to run after firmware upgrade. + * + * Copyright (C) 2010 by Multi-Tech Systems + * + * Author: James Maki + * + * This program 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 2 of the License, or + * (at your option) any later version. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "upgrade_reboot.h" + +static void print_version(const char *name) { + printf("%s (" PACKAGE ") " VERSION " (" __DATE__ " " __TIME__ ")\n", name); + printf("Copyright (C) 2010 by Multi-Tech Systems\n"); + printf( +"This program is free software; you may redistribute it under the terms of\n" +"the GNU General Public License version 2 or (at your option) any later version.\n" +"This program has absolutely no warranty.\n"); +} + +static void usage(FILE *out) { + fprintf(out, "Usage: upgrade-reboot\n"); + fprintf(out, "\n"); +} + +enum { + OPT_VERSION = 128, + OPT_HELP, +}; + +static char *short_options = ""; +static struct option long_options[] = { + {"version", 0, NULL, OPT_VERSION}, + {"help", 0, NULL, OPT_HELP}, + {0, 0, 0, 0}, +}; + +int main(int argc, char *argv[]) { + int i; + int option_index; + + while((i = getopt_long(argc, argv, short_options, long_options, &option_index)) >= 0) { + switch(i) { + case 0: + break; + + case OPT_VERSION: + print_version("upgrade-reboot"); + exit(0); + break; + + case OPT_HELP: + usage(stdout); + exit(0); + break; + + default: + usage(stderr); + exit(1); + } + } + + sync(); + sleep(2); + + reboot(RB_AUTOBOOT); + + return 0; +} + -- cgit v1.2.3