123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #!/usr/bin/env bash
- [ "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
- }
- 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
|