123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- #!/bin/sh
- ./.gitcheck
- [ "x${DEBUG+set}" = 'xset' ] && set -v
- set -u -e
- projectname="$(cat projectname)"
- build=./resources/scripts/build
- listmodes() {
- for mode in "${build}"/*; do
- printf '%s\n' "${mode##*/}"
- done
- }
- listoptions() {
- for option in "${build}"/"${1}"/*; do
- printf '%s\n' "${option##*/}"
- done
- }
- help() {
- cat <<- EOF
- USAGE: ./build <MODE> <OPTION>
- possible values for 'mode':
- $(listmodes)
- Example: ./build module all
- Example: ./build module flashrom [static]
- Example: ./build roms withgrub
- Example: ./build clean all
- 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 './build help'."
- fi
- mode="${1}"
- if [ "${mode}" != "dependencies" ]; then
- ./resources/scripts/misc/versioncheck
- fi
- [ "${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
- "${build}"/"${mode}"/"${option}" $@
- done
- ;;
- *)
- if [ -d "${build}"/"${mode}"/ ]; then
- if [ -f "${build}"/"${mode}"/"${option}" ]; then
- "${build}"/"${mode}"/"${option}" $@
- else
- help
- die "Invalid option for '${mode}'. See './build ${mode} list'."
- fi
- else
- help
- die "Invalid mode '${mode}'. See './build help'."
- fi
- esac
- else
- help
- exit 0
- fi
- ./.gitcheck clean
|