#!/bin/bash export SCRIPT_DIR=$(dirname "$0") ## ## Configuration Variables ## config () { # A whitespace-separated list of executables that must be present and locatable. : ${REQUIRED_TOOLS="xctool"} export REQUIRED_TOOLS } ## ## Bootstrap Process ## main () { config if [ -n "$REQUIRED_TOOLS" ] then echo "*** Checking dependencies..." check_deps fi local submodules=$(git submodule status 2>/dev/null) if [ -n "$submodules" ] then echo "*** Updating submodules..." update_submodules fi } check_deps () { for tool in $REQUIRED_TOOLS do which -s "$tool" if [ "$?" -ne "0" ] then echo "*** Error: $tool not found. Please install it and bootstrap again." exit 1 fi done } bootstrap_submodule () { local bootstrap="script/bootstrap" if [ -e "$bootstrap" ] then echo "*** Bootstrapping $name..." "$bootstrap" >/dev/null else update_submodules fi } update_submodules () { git submodule sync --quiet && git submodule update --init && git submodule foreach --quiet bootstrap_submodule } export -f bootstrap_submodule export -f update_submodules main