#!/bin/bash

# expand path
prg_path=${0%/*}
export PATH=$prg_path/../lib:$PATH
export PERLLIB=$prg_path/../lib
export PERL5LIB=$prg_path/../lib
# make HOSTNAME to a regular environment variable
export M_HOST=$HOSTNAME

. $PERLLIB/mCM.lib

usage="$0: mCM OPTIONS [<dir>]
   -h|--help
   -b|--batch: batchmode, -a|--answer y/n: default answer"

TEMP=$(getopt -o hba: --long help,batch,answer: -n $0 -- "$@")
eval set -- "$TEMP"

# provide default values:
batch=0
default_answer=u #unknown

while true
do
	case "$1" in
		-h | --help ) echo $usage; exit ;;
		-b | --batch ) batch=true; shift ;;
		-a | --answer ) default_answer=$2 ; shift; shift ;;
		-- ) shift; break ;;
		* ) break ;;
	esac	
done

if [ "$1" != "" ]
then
    dir_list=$1
else
    # regex-Ausdruck unterdrückt .Verzeichnisse
    dir_list=$(find . -maxdepth 1 -type d -regex "^./[^\.].*")
fi

# store start dir
base_dir=$PWD
for dir in $dir_list
do
    cd $dir
    evalCm
    if [ $evalCm_result != "unknown" ]
    then
        echo "processing $dir ..."
        evalCmStatus up.out || error_exit evalCmStatus up.out errlog: /tmp/syserr
        buildToDoList.pl up.out up.tmp $batch || error_exit buildToDoList.pl up.out up.tmp
        cat up.tmp
        CM2cm
        echo
        wc=$(wc -l up.sh)
   		answer=$default_answer
        if [ "${wc:0:1}" != "1" ]
        then
		    cat up.sh
		    if [ "$answer" == "u" ]
		    then
				echo "execute ? (y)/n"
				read answer
			fi
		fi
		if [ $batch == true ]
		then
			cp up.sh $base_dir/$dir.batch
		else
			if [ "$answer" != "n" ]
			then
			  . up.sh
			fi
		fi
		rm up.*
    fi
    # return to start dir
    cd $base_dir
done