jw-pkg/scripts/streamline-project.sh
Jan Lindemann d1e8beb05a streamline-project.sh: Add streamline-project.sh
Signed-off-by: Jan Lindemann <jan@janware.com>
2015-12-12 12:44:47 +00:00

96 lines
1.2 KiB
Bash

#!/bin/bash
goodbye()
{
rm -rf $tmp
[ "$1" ] && exit $1
}
error()
{
echo $@
}
fatal()
{
error $@
goodbye 1
}
set_var()
{
local var=$1
shift
eval local check=\$$var
if [ -z "$check" ]; then
eval $var="$@"
fi
}
set_defaults()
{
set_var modules ""
}
usage()
{
cat <<- EOT | sed 's/^ *|//'
|
| $myname [options] module ...
|
| module(s) are the module to be executed, currently selected: $modules
|
| options are
|
| -h: display this help message and exit sucessfully
|
EOT
goodbye $1
}
# -------------- here we go
trap goodbye INT KILL EXIT
myname=`basename $0`
dir=`dirname $0`
eval set -- `getopt -- h "$@"`
while [ "$1" != -- ]; do
case $1 in
-h)
usage=0;;
*)
usage=1;;
esac
shift
done
shift
modules="$@"
set_defaults
[ "$usage" ] && usage $usage
for m in $modules; do
mod_script=$dir/streamline-$m.sh
status=`$mod_script status`
r=$?
if [ "$r" != 0 ]; then
fatal "running "$mod_script status" failed ($r)"
fi
case $status in
not-implemented)
log "module $m is not implemented, yet, ignoring"
;;
due)
log "need to run module $m"
;;
$*)
fatal "unrecognized output from module $m"
;;
esac
done