#!/bin/ksh
set -x
domainHome=$1
packageHome=$2
profileDirPath=${packageHome}/etc/profile.d
packageFullName=${packageHome##*/}
packageNameVersion=${packageFullName%_*}
packageName=${packageNameVersion%%_*}
packageVersion=${packageNameVersion##*_}
packageArch=${packageFullName##*_}
profilePath=${profileDirPath}/${packageFullName}.sh
mkdir -p ${profileDirPath}
cd ${packageHome}

#==== Define needed vars in package profile
cat > ${profilePath} << EOF
export modelutils=$packageHome
EOF

cd ${packageHome}

#==== Produce src, include and RCS
GitDepots=${GitDepots:-~/GitDepots}
if [[ -r ${GitDepots}/$packageName ]] ; then
    rm -rf src
    git clone ${GitDepots}/$packageName gittmp$$

    if [[ -d gittmp$$/src ]] ; then
       mv gittmp$$/* gittmp$$/.[a-zA-Z0-9_]* .
       rm -rf gittmp$$
    else
       mv gittmp$$ src
    fi

    cd src

    git checkout -b ${packageNameVersion}-ssm $packageNameVersion
    rm -rf .git/

    for item in * ; do
        dorcs=1
        [[ -f $item ]] && dorcs=0
        [[ x$(echo $item | cut -c1-2) == x__ ]] && dorcs=0 
        [[ x$item == xinclude ]] && dorcs=0 && mv $item ..
        [[ x$item == xbin ]] && dorcs=0 && mv $item ..
        [[ x$item == xshare ]] && dorcs=0 && mv $item ..
        if [[ x$dorcs == x1 ]] ; then
            RCSNAME=RCS_`echo $item | tr 'a-z' 'A-Z'`      
            cd $item
            rm -rf ../../$RCSNAME
            rm -rf RCS
            mkdir ../../$RCSNAME
            ln -s ../../$RCSNAME/. RCS
            for item2 in *.[chf]* ; do
                ci $item2 << EOF
.
EOF
                co $item2
            done
            rm -f RCS
            cd ..
        fi
    done

    ln -s ../include/. ./include

    cd ..

    mkdir RCS
    mylist="$(ls include/.[rc]* 2>/dev/null)"
    for item in $mylist ; do
        cp $item RCS/${item#*/} 2>/dev/null
    done
    mylist="$(ls include/recettes* include/cible* 2>/dev/null)"
    for item in $mylist ; do
        cp $item RCS/.${item#*/}
    done
fi

cd ${packageHome}
mkdir bin 2>/dev/null || true
cp .ssm.d/r.pkg-config bin/r.${packageName}_${packageArch}-config
cd bin
ln -s ./r.${packageName}_${packageArch}-config r.config_${packageName}_${packageArch}

exit 0



#==== Create version file
production_date=$(date '+%Y-%m-%d %H:%M %Z')
chmod u+w ${packageHome}
mkdir ${packageHome}/include 2>/dev/null
chmod u+w ${packageHome}/include

#TODO: move this in the specific arch pkg
my_ssm_compiler_list=${ssm_compiler_list}
[[ x$my_ssm_compiler_list == x ]] && my_ssm_compiler_list="Linux:${ssm_Linux_COMPILER} Linux_x86-64:${ssm_Linux_x86_64_COMPILER} AIX:${ssm_AIX_COMPILER} AIX-powerpc7:${ssm_AIX_powerpc7_COMPILER}"

pwdbefore=$(pwd)
for item in $ssm_compiler_list ; do
    cd ${packageHome}/include
    MYARCH=${item%:*}
    MYCOMP="$(echo ${item#*:} | sed 's/-old//' | tr 'A-Z' 'a-z')"
    mkdir -p ${packageHome}/include/$MYARCH/$MYCOMP 2>/dev/null
    chmod u+w ${packageHome}/include/$MYARCH/$MYCOMP
    cat > ${packageHome}/include/$MYARCH/$MYCOMP/${packageName}_version.inc << EOF
       character(len=50),parameter :: MODELUTILS_NAME_S = 'MODELUTILS'
       character(len=50),parameter :: MODELUTILS_VERSION_S = '${packageVersion}'
       character(len=50),parameter :: MODELUTILS_DSTP_S = '${production_date}'
       character(len=50),parameter :: MODELUTILS_EC_ARCH_S = '$MYARCH/$MYCOMP'
EOF
   ln -s ./$MYARCH/$MYCOMP/. ./${MYARCH}_$MYCOMP  2>/dev/null
   cd $MYARCH/$MYCOMP
   ln -s ./${packageName}_version.inc ./${packageName}_version.cdk
done
cd $pwdbefore

