diff options
Diffstat (limited to 'update')
l---------[-rwxr-xr-x] | update | 103 |
1 files changed, 1 insertions, 102 deletions
@@ -1,102 +1 @@ -#!/usr/bin/env bash - -# generic update scripts for updating configs and such -# -# Copyright (C) 2014, 2015, 2020, 2021 Leah Rowe <info@minifree.org> -# Copyright (C) 2015 Patrick "P. J." McDermott <pj@pehjota.net> -# Copyright (C) 2015, 2016 Klemens Nanni <contact@autoboot.org> -# -# 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 <http://www.gnu.org/licenses/>. -# - -[ "x${DEBUG+set}" = 'xset' ] && set -v -set -u -e - -projectname="$(cat projectname)" -./resources/scripts/misc/versioncheck - -update=./resources/scripts/update - -listmodes() { - for mode in "${update}"/*; do - printf '%s\n' "${mode##*/}" - done -} - -# Takes exactly one mode as parameter -listoptions() { - for option in "${update}"/"${1}"/*; do - printf '%s\n' "${option##*/}" - done -} - -help() { - cat <<- EOF - USAGE: ./update <MODE> <OPTION> - - possible values for 'mode': - $(listmodes) - - Example: ./update coreboot configs - Example: ./update coreboot configs x60 - - Refer to the ${projectname} documentation for more information. - EOF -} - -die() { - printf 'Error: %s\n' "${@}" 1>&2 - exit 1 -} - -if [ $# -lt 1 ]; then - die "Wrong number of arguments specified. See './update help'." -fi - -mode="${1}" - -[ "${mode}" = help ] && help && exit 0 - -if [ $# -gt 1 ]; then - - option="${2}" - shift 2 - - case "${option}" in - list) - printf "Available options for mode '%s':\n\n" "${mode}" - listoptions "${mode}" - ;; - all) - for option in $(listoptions "${mode}"); do - "${update}"/"${mode}"/"${option}" $@ - done - ;; - *) - if [ -d "${update}"/"${mode}"/ ]; then - if [ -f "${update}"/"${mode}"/"${option}" ]; then - "${update}"/"${mode}"/"${option}" $@ - else - help - die "Invalid option for '${mode}'. See './update ${mode} list'." - fi - else - help - die "Invalid mode '${mode}'. See './update help'." - fi - esac -else - help - exit 0 -fi +lbmk
\ No newline at end of file |