#!/bin/bash

set -u
umask 002

VER11="11.0.0-85"
RELNUM="1"

PRODUCT_NAME="openam11"
CATEGORY_NAME="openam"

WORKDATE=`date '+%Y%m%d'`

UPLOAD_BASE_DIR="/project/share/product/release/uploads"
ISODIR="/project/share/product/release/iso"

PRODUCT="/srv/share/product"
RELEASE_DIR="/project/share/product/release/package-oa"
WORK_DIR="$UPLOAD_BASE_DIR/openam/openam11-work"
UPLOADS_DIR="$UPLOAD_BASE_DIR/openam/openam11-upload"
INFO_DIR="$UPLOAD_BASE_DIR/openam/info"
UPDATES_INFO="$INFO_DIR/openam11-$WORKDATE.info"
PACKAGE_INFO="$INFO_DIR/openam11-package.info"

DOC_DIR="/project/share/product/release/doc/openam"
#INSTALL_GUIDE="installguide/OSTD-OpenAM11-InstallGuide.pdf"
#RELEASE_NOTE="releasenotes/OSTD-OpenAM11-ReleaseNote.pdf"

if [ -d $UPLOADS_DIR ]; then
    echo "Please remove $UPLOADS_DIR"
    exit 1
fi

if [ -d $WORK_DIR ]; then
    echo "Please remove $WORK_DIR"
    exit 1
fi

if [ ! -d $INFO_DIR ]; then
    mkdir -p $INFO_DIR
fi

if [ -f $UPDATES_INFO ]; then
    rm -f $UPDATES_INFO
fi

echo "## openam-$VER11 at $WORKDATE ##" >> $PACKAGE_INFO
echo "" >> $PACKAGE_INFO

## Linux
for OS_ARCH in "RHEL7/x86_64" "RHEL6/noarch" "RHEL5/noarch"; do
    OS=`echo $OS_ARCH | awk -F / '{print $1}'`
    ARCH=`echo $OS_ARCH | awk -F / '{print $2}'`
    DIST=`echo $OS|sed 's/RHEL/el/'`
    PKGNAME="osstech-openam11-$VER11.$RELNUM.$ARCH.$DIST"
    PKGDIR=$RELEASE_DIR/$OS/noarch/$CATEGORY_NAME/$PRODUCT_NAME
    if [ -d $PKGDIR ]; then
        ls $PKGDIR/|grep $VER11 > /dev/null
        if [ $? -eq 1 ]; then
            echo "No $VER11 version in $PKGDIR"
        fi

        DISTDIR=$WORK_DIR/$PKGNAME
        #mkdir -p \
        #$DISTDIR/{docs,pkgs/RPMS/{ldapschema,$PRODUCT_NAME/{base,$CATEGORY_NAME}}}
        mkdir -p \
        $DISTDIR/pkgs/RPMS/{ldapschema,$PRODUCT_NAME/{base,$CATEGORY_NAME}}

        ## docs
        #cp $DOC_DIR/$INSTALL_GUIDE $DISTDIR/docs
        #cp $DOC_DIR/$RELEASE_NOTE $DISTDIR/docs
        ## base
        cp $RELEASE_DIR/$OS/$ARCH/$CATEGORY_NAME/base/*.rpm \
        $DISTDIR/pkgs/RPMS/$PRODUCT_NAME/base/
        ## openam
        cp $PKGDIR/*.rpm $DISTDIR/pkgs/RPMS/$PRODUCT_NAME/$CATEGORY_NAME/
        ## ldapschema
        cp $RELEASE_DIR/$OS/noarch/$CATEGORY_NAME/ldapschema/*.rpm \
        $DISTDIR/pkgs/RPMS/ldapschema/

        pushd $WORK_DIR > /dev/null
        tar cfz $PKGNAME.tar.gz $PKGNAME
        #env TZ=UTC mkisofs -uid 0 -gid 0 -dir-mode 0755 -file-mode 0755 -J -R -o $PKGNAME.iso $PKGNAME 2> /dev/null
        SHA1HASH=`sha1sum $PKGNAME.tar.gz | awk '{print $1}'`
        RANDNAME=`pwgen -B 6`
        mkdir -p $UPLOADS_DIR/$RANDNAME
        mv $PKGNAME.tar.gz $UPLOADS_DIR/$RANDNAME/
        #mkdir -p $ISODIR/$OS/$CATEGORY_NAME
        #mv $PKGNAME.iso $ISODIR/$OS/$CATEGORY_NAME/

        ## Create update informations for OSSTech track.
        echo "* $OS($ARCH)" >> $UPDATES_INFO
        echo "  * http://www.osstech.co.jp/download/updates/$PRODUCT_NAME/$RANDNAME/$PKGNAME.tar.gz" >> $UPDATES_INFO
        echo "  * sha1sum: $SHA1HASH" >> $UPDATES_INFO
        echo "" >> $UPDATES_INFO

        ## RPM informations
        echo "* $PKGNAME" >> $PACKAGE_INFO
        echo "`ls -R $PKGNAME | grep rpm`" >> $PACKAGE_INFO
        echo "" >> $PACKAGE_INFO

        popd > /dev/null
        echo "[FINISHED] $PKGNAME"
    fi
done

