summaryrefslogtreecommitdiff
path: root/scripts/setup-tomcat.sh
blob: 203a5f1e6feb52f876011f1d842d462bd8d61f08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/sh

TOMCAT_VERSION="7.0.42"

PASSWORD=$1

if [ -e $HOME/opt/tomcat ]; then
    echo "Tomcat appears to already be installed at $HOME/opt/tomcat. Skipping..."
    exit 1
fi

# Download
mkdir -p $HOME/opt
cd $HOME/opt
wget http://www.eng.lsu.edu/mirrors/apache/tomcat/tomcat-7/v${TOMCAT_VERSION}/bin/apache-tomcat-${TOMCAT_VERSION}.tar.gz
tar xzf apache-tomcat-${TOMCAT_VERSION}.tar.gz
rm apache-tomcat-${TOMCAT_VERSION}.tar.gz
ln -s apache-tomcat-${TOMCAT_VERSION} tomcat

# Configure

if [ -z "$PASSWORD" ]; then
    echo -n "Enter a tomcat password (stored in plaintext): "
    read -s PASSWORD
fi

rm tomcat/conf/tomcat-users.xml
cat > tomcat/conf/tomcat-users.xml << EOF
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <!-- Remember: manager-gui and manager-script should not be assigned to
       the same user in production installations -->
  <user username="${USER}" password="${PASSWORD}" roles="manager-gui,manager-script"/>
</tomcat-users>
EOF
chmod 600 tomcat/conf/tomcat-users.xml

# Create the build.properties for other projects
cat > tomcat/conf/build.properties << EOF
catalina.home=${HOME}/opt/tomcat
manager.username=${USER}
manager.password=${PASSWORD}
EOF
chmod 600 tomcat/conf/build.properties

# Setup environment
if [ -z "$JAVA_HOME" ]; then
    JAVA_HOME=/usr/lib/jvm/java-7-oracle
fi

cat > tomcat/bin/setenv.sh << EOF
export CATALINA_HOME=$HOME/opt/tomcat
export JAVA_HOME=$JAVA_HOME
EOF

# Setup nifty links
mkdir -p $HOME/bin
ln -s $HOME/opt/tomcat/bin/startup.sh $HOME/bin/start-tomcat.sh
ln -s $HOME/opt/tomcat/bin/shutdown.sh $HOME/bin/stop-tomcat.sh

# Start tomcat
exec tomcat/bin/startup.sh