summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-05-18 10:41:30 +0100
committerLeah Rowe <leah@libreboot.org>2023-05-18 10:49:47 +0100
commit34df727c989d78430e5968fc6aeba7a5a108130a (patch)
tree6204d1803a86a049c3e0469441e6329c941c7aeb /build
parent1a062bb62810ba555351a01bb17f74e3beb992a8 (diff)
build: cleaner coding style
main() on top top-down logic reduced indentation Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'build')
-rwxr-xr-xbuild123
1 files changed, 65 insertions, 58 deletions
diff --git a/build b/build
index 1eb39216..4e1689a0 100755
--- a/build
+++ b/build
@@ -20,29 +20,73 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-./.gitcheck
[ "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
-listmodes() {
- for mode in "${build}"/*; do
- printf '%s\n' "${mode##*/}"
- done
+ 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##*/}"
+listoptions()
+{
+ for option in "${build}/${1}/"*; do
+ printf '%s\n' ${option##*/}
done
}
-help() {
+usage()
+{
cat <<- EOF
USAGE: ./build <MODE> <OPTION>
@@ -58,54 +102,17 @@ help() {
EOF
}
-die() {
- printf 'Error: %s\n' "${@}" 1>&2
- exit 1
+listmodes()
+{
+ for mode in "${build}"/*; do
+ printf '%s\n' ${mode##*/}
+ done
}
-if [ $# -lt 1 ]; then
- die "Wrong argument count. Run: ./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 "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
- help
- die "Invalid mode '${mode}'. Run: ./build help"
- fi
- if [ -f "${build}"/"${mode}"/"${option}" ]; then
- "${build}"/"${mode}"/"${option}" $@
- else
- help
- printf "Invalid option for '%s'." ${mode}
- die "Run: ./build ${mode} list'."
- fi
- esac
-else
- help
- exit 0
-fi
+die()
+{
+ printf 'Error: %s\n' ${@} 1>&2
+ exit 1
+}
-./.gitcheck clean
+main $@