From d1e8beb05a7f93d59e81575a7f1575f897035747 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Sat, 12 Dec 2015 12:44:47 +0000 Subject: [PATCH] streamline-project.sh: Add streamline-project.sh Signed-off-by: Jan Lindemann --- scripts/streamline-project.sh | 96 +++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 scripts/streamline-project.sh diff --git a/scripts/streamline-project.sh b/scripts/streamline-project.sh new file mode 100644 index 00000000..6a77fb5b --- /dev/null +++ b/scripts/streamline-project.sh @@ -0,0 +1,96 @@ +#!/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 +