bin/deploy

Summary

Maintainability
Test Coverage
#!/bin/bash
# deploy
#
#{{IS_NOTE
#    Purpose:
#        Deploy
#    Description:
#        It supports tomcat only.
#    History:
#        Thu Jan 26 09:47:39     2006, Created by tomyeh
#}}IS_NOTE
#
#Copyright (C) 2006 Potix Corporation. All Rights Reserved.
#
#{{IS_RIGHT
#    This program is distributed under GPL Version 3.0 in the hope that
#    it will be useful, but WITHOUT ANY WARRANTY.
#}}IS_RIGHT
#
setting=build.setting.local
if [ ! -f $setting ] ; then
    setting=build.setting
fi

tomcat=$(grep '^tomcat' $setting)
tomcat=${tomcat#tomcat=}
if [ "$tomcat" = "" ] ; then
    tomcat=/usr/tomcat
fi
if [ ! -d $tomcat ] ; then
    echo "$tomcat not found"
    echo "Currently only tomcat is supported"
    exit 1
fi

if [ $# == 0 ] ; then
    echo "Usage:"
    echo "  deploy prj1 prj2..."
    exit 0
fi

function cpweb {
    (
        cd $1
        for sub in * ; do
            if [ -f "$sub" ] ; then
                #echo cp -u -p "$sub" $2
                cp -u -p -v "$sub" $2
            elif [ "$sub" != CVS ] && [ "$sub" != .svn ] && [ -d "$sub" ] ; then
                local dstsub=$2/$sub
                if [ ! -d "$dstsub" ] ; then
                    mkdir -p "$dstsub"
                fi
                #echo cpweb $(pwd)/$sub $dstsub
                cpweb $sub $dstsub
            fi
        done
    )
}

jar_found=false
for f in $*; do
    f=${f%/}
    if [ -f dist/lib/$f.war ] && [ "$(head -1 $f/format)" = "war" ] ; then
        dst=$(grep '^root' $f/deploy)
        if [ "$dst" = "root" ] ; then
            dst=ROOT
        else
            dst=$f
        fi
        echo "cp dist/lib/$f $tomcat/webapps/$dst"
        cpweb $f/src/archive $tomcat/webapps/$dst
    fi
    if [ -f dist/lib/$f.jar ] || [ -f dist/lib/ext/$f.jar ] ; then
        jar_found=true
    fi
done

if [ "$jar_found" = "true" ] ; then
    if [ -f $setting ] ; then
        service=$(grep '^start.service' $setting)
        service=${service#start.service=}
    fi

    if [ "$service" != "" ] ; then
        if [ "$service" = "startup.sh" ] ; then
            $tomcat/bin/shutdown.sh
        else
            net stop "$service"
        fi
    fi

    for f in $*; do
        f=${f%/}
        if [ -f dist/lib/$f.jar ] ; then
            #echo "cp dist/lib/$f.jar $tomcat/shared/lib"
            chmod 644 dist/lib/$f.jar
            cp -p -u -v -f dist/lib/$f.jar $tomcat/shared/lib
        fi
        if [ -f dist/lib/ext/$f.jar ] ; then
            #echo "cp dist/lib/ext/$f.jar $tomcat/shared/lib"
            chmod 644 dist/lib/ext/$f.jar
            cp -p -u -v -f dist/lib/ext/$f.jar $tomcat/shared/lib
        fi
    done

    if [ "$service" != "" ] ; then
        if [ "$service" = "startup.sh" ] ; then
            $tomcat/bin/startup.sh
        else
            net start "$service"
        fi
    fi
fi