Created
May 20, 2016 04:55
-
-
Save yanokwa/1585d7f79b2af06b702505f606cbd362 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# safety | |
set -e | |
# variables | |
HOSTNAME=$1 | |
WAR_PATH="/var/lib/tomcat6/webapps/ROOT.war" | |
WAR_FOLDER_PATH="/var/lib/tomcat6/webapps/ROOT" | |
TIMESTAMP=$(date +%Y-%m-%dT%H:%M:%SZ) | |
BACKUP_WAR_PATH="/usr/local/etc/aggregate/ROOT.war.$TIMESTAMP" | |
ZIP_PATH=$(which zip) | |
UNZIP_PATH=$(which unzip) | |
# sanity check | |
if [ ! -f /etc/lsb-release ] | |
then | |
echo "No /etc/lsb-release found. Make sure you run this inside the VM!"; | |
exit; | |
fi | |
# input check | |
if test $# -lt 1 | |
then | |
echo "Usage: ./update-war-hostname.sh hostname"; | |
exit; | |
fi | |
# url check | |
shopt -s nocasematch | |
if [[ $HOSTNAME =~ .*http.* ]] | |
then | |
echo "Hostname should not include http:// or https://"; | |
exit | |
fi | |
# zip check | |
if [ -z "$ZIP_PATH" ] | |
then | |
echo "zip was not found. Install zip, and make sure it is on your path."; | |
exit; | |
fi | |
# unzip check | |
if [ -z "$UNZIP_PATH" ] | |
then | |
echo "unzip was not found. Install unzip, and make sure it is on your path."; | |
exit; | |
fi | |
# war check | |
if [ ! -f $WAR_PATH ] | |
then | |
echo "Aggregate war $WAR_PATH was not found." | |
exit; | |
fi | |
echo "Stopping Tomcat"; | |
/etc/init.d/tomcat6 stop; | |
sleep 1; | |
echo "Cleaning up tmp folders"; | |
cd /tmp; | |
if [ -d /tmp/ODKAggregate ] | |
then | |
rm -rf /tmp/ODKAggregate; | |
fi | |
if [ -d /tmp/ODKAggregate-settings ] | |
then | |
rm -rf /tmp/ODKAggregate-settings; | |
fi | |
echo "Unpacking ROOT.war"; | |
$UNZIP_PATH -q $WAR_PATH -d /tmp/ODKAggregate; | |
echo "Unpacking ODKAggregate-settings.jar"; | |
$UNZIP_PATH -q /tmp/ODKAggregate/WEB-INF/lib/ODKAggregate-settings.jar -d /tmp/ODKAggregate-settings; | |
echo "Changing ODKAggregate-settings.jar settings"; | |
eval "sed -i -e 's/^security.server.hostname=.*/security.server.hostname=$HOSTNAME/g' /tmp/ODKAggregate-settings/security.properties;"; | |
echo "Repacking ODKAggregate-settings.jar"; | |
cd /tmp/ODKAggregate-settings; | |
$ZIP_PATH -q -r ../ODKAggregate/WEB-INF/lib/ODKAggregate-settings.jar .; | |
echo "Backing up old war and removing exploded folder"; | |
if [ -f $WAR_PATH ] | |
then | |
mv $WAR_PATH "$BACKUP_WAR_PATH"; | |
fi | |
if [ -d $WAR_FOLDER_PATH ] | |
then | |
rm -rf $WAR_FOLDER_PATH; | |
fi | |
echo "Repacking ROOT.war"; | |
cd /tmp/ODKAggregate; | |
$ZIP_PATH -q -r $WAR_PATH .; | |
echo "Cleaning up tmp folders"; | |
cd /tmp; | |
if [ -d /tmp/ODKAggregate ] | |
then | |
rm -rf /tmp/ODKAggregate; | |
fi | |
if [ -d /tmp/ODKAggregate-settings ] | |
then | |
rm -rf /tmp/ODKAggregate-settings; | |
fi | |
echo "Starting Tomcat"; | |
/etc/init.d/tomcat6 start; | |
echo "----------------------------------------" | |
echo "New server hostname: $HOSTNAME"; | |
echo "Old war location: $BACKUP_WAR_PATH"; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
what language will use to this?