Mercurial > hg > aboriginal
view forkbomb.sh @ 312:dd28934bb0c9
Add --stat option, plus better help text when run with no arguments.
author | Rob Landley <rob@landley.net> |
---|---|
date | Sun, 30 Mar 2008 17:53:00 -0500 |
parents | 352b71189c93 |
children | 1782b77fae15 |
line wrap: on
line source
#!/bin/bash # Test script to build every target architecture, logging output. # With --fork, it builds them in parallel # With --nofork, it build them sequentially # With --watch, it displays output from an existing parallel build function buildarch() { nice -n 20 ./cross-compiler.sh $1 && nice -n 20 ./mini-native.sh $1 && nice -n 20 ./package-mini-native.sh $1 } if [ "$1" != "--watch" ] && [ "$1" != "--stat" ] then if [ $# -ne 0 ] then (nice -n 20 ./download.sh && # host-tools populates one directory with every command the build needs, # so we can ditch the old $PATH afterwards. nice -n 20 ./host-tools.sh && PATH=`pwd`/build/host && nice -n 20 ./download.sh --extract || touch .kthxbye) 2>&1 | tee out.txt rm .kthxbye 2>/dev/null && exit 1 fi for i in `cd sources/configs; ls` do if [ "$1" == "--nofork" ] then buildarch $i 2>&1 | tee out-$i.txt || exit 1 elif [ "$1" == "--fork" ] then (buildarch $i > out-$i.txt 2>&1 &)& else echo "Usage: forkbomb.sh [--fork] [--nofork] [--watch] [--stat]" echo -e "\t--nofork Build all targets one after another." echo -e "\t--fork Build all targets in parallel (needs lots of RAM)." echo -e "\t--watch Restart monitor for --nofork." echo -e "\t--stat Grep logfiles for success/failure after build." exit 1 fi done fi if [ "$1" == "--stat" ] then echo "Success:" grep -l qemu-image- out-*.txt echo "Failed:" (ls -1 out-*.txt; grep -l qemu-image- out-*.txt) | sort | uniq -u exit 0 fi if [ "$1" != "--nofork" ] then watch -n 3 'X=; for i in out-*.txt; do /bin/echo -e "$X$i"; X="\n"; tail -n 1 $i; done' fi