#!/bin/sh
# COPYRIGHT (C) HITACHI,LTD. 2004
# Written by M.Hiramatsu <hiramatu@sdl.hitachi.co.jp>
# the collection of useful functions and constants

function mkabbr () {
    echo $1 | tr -d .-
}

function strstr () {
    case "$1" in
	*"$2"*) return 0;;
    esac
    return 1
}

function confirm () {
    local YES=$"yY"
    local NO=$"nN"
    local answer
    while true; do
	echo -n "$1 (Y)es/(N)o? [Y] "
	read answer
	if strstr "$YES" "$answer" || [ ! "$answer" ] ; then
	    return 1
	elif strstr "$NO" "$answer" ; then
	    return 0
	fi
	echo "ERROR: BAD Answer. Please choose again."
    done
}

function rp2ap() { # relative path to absolute path
    local BN
    BN=`dirname $1`
    echo `cd $BN && pwd`/`basename $1` | tr -s /
}

function diffdir() { # ignore symbolic links
local TMPFILE
local DIFF
local FDIR=`basename $1`
local TDIR=`basename $2`

[ `dirname $1` = "." ] || FDIR=`dirname $1`/`basename $1`
[ `dirname $2` = "." ] || TDIR=`dirname $2`/`basename $2`
[ -d $FDIR -a -d $TDIR ] || exit 1;
echo -n > $3
for i in `find $TDIR -type f`; do
 TMPFILE=`mktemp tempdiff.XXXXXX`
 DIFF="diff -Naru `echo $i | sed s@^$TDIR@$FDIR@` $i"
 echo $DIFF >> $TMPFILE
 eval $DIFF >> $TMPFILE
 [ `cat $TMPFILE| wc -l` -gt 1 ] && cat $TMPFILE >> $3
 rm $TMPFILE
done
}

if [ `basename $0` = "functions" ] ;then 
# standalone mode
COMMAND=$1
shift 1
case $COMMAND in
	diffdir)
	diffdir $*
	;;
	rp2ap)
	rp2ap $*
	;;
	confirm)
	confirm $*
	;;
	strstr)
	strstr $*
	;;
	mkabbr)
	mkabbr $*
	;;
	*)
	;;
esac
fi
