diff options
author | Leah Rowe <leah@libreboot.org> | 2023-05-27 10:52:37 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2023-05-27 10:54:50 +0100 |
commit | 092600d163e771d31da07d88a03fe669aa4708f1 (patch) | |
tree | 6c74e4fbec6892701bb55f89560b36dbd125580d | |
parent | 6344b196007a2bf955766f47da5f1fd36fbc19db (diff) |
unify these scripts: build, modify and update
unify them, by turning them into symlinks pointing
to a generic script named lbmk
the script named lbmk is a fork of the script
named "build", which just checks argument 0 and adapts
accordingly
all of these core scripts had the exact same overall
logic, and they are thus compatible
Signed-off-by: Leah Rowe <leah@libreboot.org>
l---------[-rwxr-xr-x] | build | 119 | ||||
-rwxr-xr-x | lbmk | 122 | ||||
l---------[-rwxr-xr-x] | modify | 104 | ||||
l---------[-rwxr-xr-x] | update | 103 |
4 files changed, 125 insertions, 323 deletions
@@ -1,118 +1 @@ -#!/usr/bin/env bash - -# generic build script, for building components (all of them) -# -# Copyright (C) 2014,2015,2020,2021,2023 Leah Rowe <info@minifree.org> -# Copyright (C) 2015 Patrick "P. J." McDermott <pj@pehjota.net> -# Copyright (C) 2015, 2016 Klemens Nanni <contact@autoboot.org> -# Copyright (C) 2022, Caleb La Grange <thonkpeasant@protonmail.com> -# -# 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)" -build=./resources/scripts/build -mode="" -option="" - -main() -{ - if [ $# -lt 1 ]; then - die "Wrong argument count. Run: ./build help" - fi - mode="${1}" - - ./.gitcheck - - if [ "${mode}" != "dependencies" ]; then - ./resources/scripts/misc/versioncheck - fi - if [ "${mode}" = help ]; then - usage - exit 0 - elif [ $# -lt 2 ]; then - usage - exit 0 - fi - - option="${2}" - shift 2 - - case "${option}" in - list) - printf "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 - usage - die "Invalid mode '${mode}'. Run: ./build help" - elif [ ! -f "${build}/${mode}/${option}" ]; then - usage - printf "Invalid option for '%s'." ${mode} - die "Run: ./build ${mode} list'." - fi - "${build}/${mode}/${option}" $@ - esac - - ./.gitcheck clean -} - -# Takes exactly one mode as parameter -listoptions() -{ - for option in "${build}/${1}/"*; do - printf '%s\n' ${option##*/} - done -} - -usage() -{ - 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 ${projectname} documentation for more info. - EOF -} - -listmodes() -{ - for mode in "${build}"/*; do - printf '%s\n' ${mode##*/} - done -} - -die() -{ - printf 'Error: %s\n' ${@} 1>&2 - exit 1 -} - -main $@ +lbmk
\ No newline at end of file @@ -0,0 +1,122 @@ +#!/usr/bin/env sh + +# generic script for calling other scripts in lbmk +# +# Copyright (C) 2014,2015,2020,2021,2023 Leah Rowe <info@minifree.org> +# Copyright (C) 2015 Patrick "P. J." McDermott <pj@pehjota.net> +# Copyright (C) 2015, 2016 Klemens Nanni <contact@autoboot.org> +# Copyright (C) 2022, Caleb La Grange <thonkpeasant@protonmail.com> +# +# 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)" +buildpath="" +mode="" +option="" + +main() +{ + if [ "${0##*/}" = "lbmk" ]; then + die "Do not run the lbmk script directly!" + elif [ $# -lt 2 ]; then + die "Too few arguments. Try: ${0} help" + fi + + buildpath="./resources/scripts/${0##*/}" + + mode="${1}" + ./.gitcheck + if [ "${mode}" != "dependencies" ]; then + ./resources/scripts/misc/versioncheck + fi + if [ "${mode}" = help ]; then + usage $0 + exit 0 + elif [ $# -lt 2 ]; then + usage $0 + exit 0 + fi + + option="${2}" + shift 2 + + case "${option}" in + list) + printf "Options for mode '%s':\n\n" ${mode} + listoptions "${mode}" + ;; + all) + for option in $(listoptions "${mode}"); do + "${buildpath}/${mode}/${option}" $@ + done + ;; + *) + if [ ! -d "${buildpath}/${mode}" ]; then + usage $0 + die "Invalid mode '${mode}'. Run: ${0} help" + elif [ ! -f "${buildpath}/${mode}/${option}" ]; then + usage $0 + printf "Invalid option for '%s'." ${mode} + die "Run: ${0} ${mode} list'." + fi + "${buildpath}/${mode}/${option}" $@ + esac + + ./.gitcheck clean +} + +# Takes exactly one mode as parameter +listoptions() +{ + for option in "${buildpath}/${1}/"*; do + printf '%s\n' ${option##*/} + done +} + +usage() +{ + progname=${0} + cat <<- EOF + USAGE: ${progname} <MODE> <OPTION> + + possible values for 'mode': + $(listmodes) + + Example: ${progname} module all + Example: ${progname} module flashrom [static] + Example: ${progname} roms withgrub + Example: ${progname} clean all + + Refer to ${projectname} documentation for more info. + EOF +} + +listmodes() +{ + for mode in "${buildpath}"/*; do + printf '%s\n' ${mode##*/} + done +} + +die() +{ + printf "Error: %s\n"; ${@} 1>&2 + exit 1 +} + +main $@ @@ -1,103 +1 @@ -#!/usr/bin/env bash - -# generic scripts for modifying configs and such -# -# Copyright (C) 2014,2015,2020,2021,2023 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)" -modify=./resources/scripts/modify -mode="" -option="" - -main() -{ - ./resources/scripts/misc/versioncheck - - if [ $# -lt 1 ]; then - die "Wrong argument count. See './modify help'." - fi - mode="${1}" - - if [ "${mode}" = help ]; then - help - exit 0 - elif [ $# -lt 2 ]; then - help - exit 0 - fi - - option=${2} - shift 2 - - case "${option}" in - list) - printf "Options for mode '%s':\n\n" ${mode} - listitems "${modify}/${mode}" - ;; - all) - for option in $(listitems "${modify}/${mode}"); do - "${modify}/${mode}/${option}" $@ - done - ;; - *) - if [ ! -d "${modify}/${mode}" ]; then - help - die "Invalid mode: ${mode}. Run: ./modify help" - elif [ ! -f "${modify}/${mode}/${option}" ]; then - help - printf "Invalid option for '%s'\n." ${mode} - die "Run: ./modify ${mode} list'" - fi - "${modify}/${mode}/${option}" $@ - esac -} - -help() -{ - cat <<- EOF - USAGE: ./modify <MODE> <OPTION> - - possible values for 'mode': - $(listitems "${modify}") - - Example: ./modify coreboot configs - Example: ./modify coreboot configs x60 - - Refer to ${projectname} documentation for more info. - EOF -} - -listitems() -{ - for x in "${1}/"*; do - [ ! -f "${x}" ] && continue - printf "%s\n" ${x##*/} - done -} - -die() -{ - printf 'Error: %s\n' "${@}" 1>&2 - exit 1 -} - -main $@ +lbmk
\ No newline at end of file @@ -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 |