Wednesday, April 22, 2015

How to host multiple OpenGrok

1. Install related packages

apt-get install ctags tomcat6

2. Start tomcat

sudo /etc/init.d/tomcat6 start

3. Download OpenGrok, unzip to ~/Downloads/opengrok

http://java.net/projects/opengrok/downloads/download/opengrok-0.12.1.tar.gz


4. Generate OpenGrok database ( using sudo )


#!/bin/bash -x

grok_one()
{
        SRC_FOLDER=$1
        WEB_ROOT=$2
        CFG_PORT=$3

        SRC_WAR=~/Downloads/opengrok/opengrok-0.12.1/lib/source.war
        TAR_WAR=/var/lib/tomcat6/webapps/${WEB_ROOT}.war
        DAT_ROOT=/var/opengrok_data/${WEB_ROOT}
        ORG_ROOT=/var/opengrok
        mkdir -p $DAT_ROOT

        OPENGROK_VERBOSE=true \
        OPENGROK_INSTANCE_BASE=$DAT_ROOT \
        OPENGROK_WEBAPP_CONTEXT=$WEB_ROOT \
        OPENGROK_WEBAPP_CFGADDR=localhost\:$CFG_PORT \
        ~/Downloads/opengrok/opengrok-0.12.1/bin/OpenGrok index $SRC_FOLDER

        rm -rf WEB-INF
        cp -f $SRC_WAR $TAR_WAR
        unzip $TAR_WAR WEB-INF/web.xml
        sed -i "s#$ORG_ROOT#$DAT_ROOT#g" WEB-INF/web.xml
        sed -i "s#2424#$CFG_PORT#g" WEB-INF/web.xml
        zip -u $TAR_WAR WEB-INF/web.xml
        rm -rf WEB-INF
}

grok_one ~/src/osloader osloader 2425
grok_one ~/src/aosp_mr1 aosp_mr1 2426

5. done 

http://127.0.0.1:8080/osloader
http://127.0.0.1:8080/aosp_mr1