#!/bin/sh # script de compilation générique pour compiler les composants (tous) # # Copyright (C) 2014, 2015 Leah Rowe <info@minifree.org> # Copyright (C) 2015 Patrick "P. J." McDermott <pj@pehjota.net> # Copyright (C) 2015, 2016 Klemens Nanni <contact@autoboot.org> # # Ce programme est un logiciel libre: vous pouvez le redistribuer et/ou # le modifier sous les termes de la License Publique GNU Générale publiée # comme telle par la Free Software Foundation, soit la version 3 de la License, # ou (selon votre choix) n'importe quelle version plus récente. # # Ce programme est fournit dans l'espoir qu'il sera utile, mais SANS AUCUNE # GARANTIE; sans même la garantie implicite de MARCHANBILITÉ ou de RÉPONSE # À UN BUT PARTICULIER. Voyez la License Publique GNU générale pour plus # de détails. # # Vous devriez avoir reçu une copie de la License Publique GNU générale # avec ce programme. Si ce n'est pas le cas, visitez # <http://www.gnu.org/licenses/>. # [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e build=./resources/scripts/helpers/build listmodes() { for mode in "${build}"/*; do printf '%s\n' "${mode##*/}" done } # Takes exactly one mode as parameter listoptions() { for option in "${build}"/"${1}"/*; do printf '%s\n' "${option##*/}" done } help() { cat <<- EOF USAGE: ./oldbuild <MODE> <OPTION> Valeurs possibles pour 'mode': $(listmodes) Exemple: ./oldbuild module all Exemple: ./oldbuild module flashrom [static] Exemple: ./oldbuild roms withgrub Exemple: ./oldbuild clean all Référez-vous à la documentation de Libreboot pour plus d'informations. EOF } die() { printf 'Erreur: %s\n' "${@}" 1>&2 exit 1 } if [ $# -lt 1 ]; then die "Mauvais nombre d'arguments spécifiés. Voyez './oldbuild help'." fi mode="${1}" [ "${mode}" = help ] && help && exit 0 if [ $# -gt 1 ]; then option="${2}" shift 2 case "${option}" in list) printf "Options disponibles pour le 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 "Option invalide pour '${mode}'. Voyez './oldbuild ${mode} list'." fi else help die "Mode invalide'${mode}'. Voyez './oldbuild help'." fi esac else help exit 0 fi