Archived
1
0
This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
controller/buildall.bash
Ryan S. Brown ce38bdadf3 Ensure directories can only be made with printable characters
In situations where `ls` colors directories incorrectly, the `$module`
variable contains unprintable characters. This causes directories to be
impossible to `cd` into normally, and is generally a pain.
2016-02-25 23:08:37 -08:00

62 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
###| Builder Script |###
#
# Builds all permutations of modules
# This script is an attempt to maintain module sanity as new ones are added
#
# Fortunately, sweeping API changes don't happen much anymore...but just in case...
#
# Written by Jacob Alexander 2013 for the Kiibohd Controller
# Released into the Public Domain
#
###
## TODO List ##
# - Complete non-Scan module permutations (will take extra work)
# - Add command line arguments
# - Add help flag for usage
# - Make sure the script is being run from the correct directory
main() {
ERROR="\e[5;1;31mERROR\e[0m:"
failCount=0
# Scan for list of Scan Modules
scanModules=$(ls Scan)
# Prune out "invalid" modules (parent modules)
scanModules=${scanModules[@]//matrix/}
# Create permutation directories
# Then run cmake, and run each build permutation
# Keeping track of how many builds failed/passed
for mod in $scanModules; do
module=$(tr -dc "[:print:]" <<< "$mod")
# Create directory, but do not error if it exists already
mkdir -p build/$module
cd build/$module
# Make sure CMake has been run, and attempt to build
cmake -DScanModuleOverride=$module ../.. && make || let failCount++
# Cleanup, for the next build
cd - > /dev/null
done
totalModules=$(echo $scanModules | wc -w)
if (( failCount > 0 )); then
echo -e "$ERROR $failCount/$totalModules failed"
else
echo -e "Build Success!"
fi
}
#| Main Script Entry
main "$@"
exit 0