OpenGrok

Betrifft OS:
FreeBSD

OpenGrok kann sich im Kontext von Projektarbeit als ein maechtiges Werkzeug erweisen, wenn man sich mit einer groesseren Menge an Quelltext konfrontiert sieht.

Welche entweder mittels

# pkg install ctags tomcat unzip zip

oder aus den Ports zu installieren, wobei

tomcat6_enable="YES"

als Variable in rc.conf(5) gesetzt werden kann, falls Automatisierung via init(8) erwuenscht sei. Desweiteren ist es erforderlich Apache Tomcat per

# service tomcat6 {one}{re}start

manuell zu starten.

Installation

Bestenfalls sollte die neuste Version (stable) bspw. mit fetch(1)in

# cd /var

heruntergaladen

# fetch https://github.com/OpenGrok/OpenGrok/files/213268/opengrok-0.12.1.5.tar.gz

extrahiert

# tar xvzf opengrok-0.12.1.5.tar.gz

und das extrahierte Verzeichnis

# mv opengrok-0.12.1.5 opengrok

umbenannt und das Archiv

# rm opengrok-0.12.1.5.tar.gz

geloescht werden.

Konfiguration

Zuallererst sollte in das Verzeichnis von OpenGrok

# cd /var/opengrok

gewechselt werden, dann mittels

# mkdir etc src data web web/source

die interne Struktur hinreichend fuer das Deployment von OpenGrok via Apache Tomcat anpassen.

/var/opengrok/bin/OpenGrok

--- /var/opengrok/bin/OpenGrok.orig	2015-03-24 16:06:54.000000000 +0100
+++ /var/opengrok/bin/OpenGrok	2016-08-14 01:15:03.104394000 +0200
@@ -485,36 +485,7 @@
 
 FindJavaHome()
 {
-    javaHome=""
-    case "${OS_NAME}:${OS_VERSION}" in
-	SunOS:5.10) javaHome="/usr/jdk/instances/jdk1.7.0" ;;
-	SunOS:5.11) javaHome="/usr/jdk/latest"             ;;
-	SunOS:5.12) javaHome="/usr/jdk/latest"             ;;
-	Darwin:*)    javaHome=`/usr/libexec/java_home`     ;;
-	Linux:*)
-            if [ -f /etc/alternatives/java ]
-            then
-               javaHome=`ls -l /etc/alternatives/java | cut -f 2 -d \> `
-               javaHome=`dirname $javaHome`
-               javaHome=`dirname $javaHome`
-            fi
-            ;;
-    esac
-
-    if [ -z "${javaHome}" ]
-    then
-        Error "Unable to determine Java 7 Home" \
-              "for ${OS_NAME} ${OS_VERSION}"
-        return
-    fi
-
-    if [ ! -d "${javaHome}" ]
-    then
-        Error "Missing Java Home ${javaHome}"
-        return
-    fi
-
-    echo "${javaHome}"
+    echo "/usr/local/openjdk8"
 }
 
 FindApplicationServerType()

/var/opengrok/web/source/WEB_INF/web.xml

Bevor die Konfiguration angepasst werden kann, wird die Webapplikation per

# cp lib/source.war web/

kopiert und mittels

# cd web/source
# unzip ../source.war

extrahiert, damit

--- /var/opengrok/web/source/WEB_INF/web.xml.orig	2016-08-14 01:21:16.171476000 +0200
+++ /var/opengrok/web/source/WEB_INF/web.xml	2016-08-14 01:22:00.812025000 +0200
@@ -14,7 +14,19 @@
     <param-value>localhost:2424</param-value>
     <description>An address where OpenGrok can receive new configuration</description>
   </context-param>
+  
+  <context-param>
+    <param-name>SRC_ROOT</param-name>
+    <param-value>/var/opengrok/src</param-value>
+    <description>Source Directory containing all repositories</description>
+  </context-param>
 
+  <context-param>
+    <param-name>DATA_ROOT</param-name>
+    <param-value>/var/opengrok/data</param-value>
+    <description>Data Directory for OpenGrok</description>
+  </context-param>
+  
   <listener>
    <listener-class>org.opensolaris.opengrok.web.WebappListener</listener-class>
   </listener>

gepatcht und per

# zip -r ../source.war *
# cp ../source.war /usr/local/apache-tomcat-6.0/webapps

deployed werden kann.

Indexieren

Jetzt waere es moeglich Quellcode

# cd /var/opengrok/src
# fetch http://ftp.dk.freebsd.org/pub/FreeBSD/releases/amd64/10.3-RELEASE/src.txz
# tar xvzf src.txz

via

# ../bin/OpenGrok index

zu indexieren, dann sollte es moeglich sein, das Repository (oder die Repositories)

http://127.0.0.1:8180/source

mittels Web-browser aufrufbar sein.