#!/bin/sh
#
# Author: Arne Juul <arnej@storebror.itea.ntnu.no>

masterstore=/store/store/joseph
 
echon () {
        printf "%s" "$*"
}
remnabla ()
{
    find . -name '*@*' -print | while read x; do
        echo remnabla $x;
        un=`echo $x | sed 's/@[^@]*$//'`
        ( rm $un ; rmdir $un ) 2>/dev/null
        if [ -d $un ]; then
                mv $x/* $un
                rmdir $x
        else
                mv $x $un
        fi
    done
}
 
dopma () {
    pma=$1
    if [ -d $masterstore/$pma.pm ]; then :; else
        if [ -d $masterstore/$pma ]; then
            pma=`echo $pma | sed 's=\.pm$=='`
        fi
    fi
    if cd $masterstore/$pma.pm ; then :; else
        echo no such dir $masterstore/$pma.pm
    fi
 
    find ver-* -name '*@*' -print |
    sed 's=^ver-==;s=/lib.*@= =' |
    sort -u |
    while read ver arch; do
        echon "app '$pma.pm' version '$ver' compiled for '$arch' files: "
        d1=ver-$ver/lib/perl5/*@$arch
        d2=ver-$ver/lib/perl5/site_perl/*@$arch
        if [ -d $d1 ] && [ -d $d2 ] ; then
            find $d1 $d2 -type f -print | wc -l | awk '{print $1}'
            (cd $d1 && remnabla)
            (cd $d2 && remnabla)
        elif [ -d $d1 ]; then
            find $d1 -type f -print | wc -l | awk '{print $1}'
            (cd $d1 && remnabla)
        elif [ -d $d2 ]; then
            find $d2 -type f -print | wc -l | awk '{print $1}'
            (cd $d2 && remnabla)
        else
            echo ERROR: real archdep files: NONE
        fi
        dir=ver-$ver/lib/perl5/site_perl/auto/compiled-ok
        mkdir -p $dir
        touch $dir/$pma.pm@$arch
    done
}
 
cd $masterstore
 
if [ $# -gt 0 ]; then
        for app do dopma $app; done
else
        cd $masterstore
        for app in *.pm; do dopma $app ; done
fi
 
exit 0
