# Program entry point # # Copyright (C) 2015 Patrick "P. J." McDermott # # 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 3 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, see . set -u usage() { printf 'Usage: %s [option ...] \n' "${0}" } help() { usage cat < Show in the user interface -o Log output to Actions: update Update firmware EOF } version() { cat <. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. EOF } main() { local opt= local ui='cli' local msg='' local action= unset OPTARG while getopts 'hVi:m:o:' opt; do case "${opt}" in 'h') help exit ;; 'V') version exit ;; 'i') ui="${OPTARG}" ;; 'm') msg="${OPTARG}" ;; 'o') log_init "${OPTARG}" ;; esac unset OPTARG done shift $(($OPTIND - 1)) if [ ${#} -ne 1 ]; then usage >&2 exit 1 fi action="${1}" case "${action}" in 'update');; *) usage >&2 exit 1 esac if ! init_ui "${ui}"; then exit 1 fi if [ "x${msg}" != 'x' ]; then message "${msg}" fi srand $(expr ${$} + $(date '+%s')) init_temp_dir case "${action}" in 'update') do_update ;; esac dbg 'Exiting' fini_temp_dir exit_ui return 0 }