#!/bin/sh # # ein kleines Web-Interface, um die trac-admin-Konsole zu verwenden # set -u # parent-URL der trac-Projekte TRACURL="/trac" # das trac-admin-Program TRACADMIN="/usr/bin/trac-admin" # das Verzeichnis, das alle trac-Projekte enthaelt REPOS_ROOT="/data/trac" # die URL der css-Datei von trac CSSURL=/trac-shared/css/trac.css ############# Funktionen ################### hole_uebergabe() # Parameter: Name der Variablen # extrahiert eine Variable aus dem Query-String { # Parameter holen | in Zeilen aufspalten | die richtige rausfiltern | nur den Wert nehmen | ausmaskierte "+/ " wiedereinsetzen echo "$QUERY_STRING" | sed "s/&/\n/g" | grep "^$1=" | cut -d "=" -f 2 | sed "s/+/ /g; s/%2B/+/g" } hole_project_name() # ermittelt den Namen des aktuellen Projekts # entweder: aus dem HTTP_REFERER (vorherige Seite in der History) -> beim ersten Aufruf der Konsole # oder: aus der Formular-Variable -> nach jedem ausgefuehrten Konsolen-Kommando { local proj=`hole_uebergabe trac_project` if [ -z "$proj" ] then # hole den Projektnamen aus der History local ref=`set | grep "^HTTP_REFERER=" | cut -d "=" -f 2` proj=`echo "$ref" | sed "s#^.*$TRACURL/\([^/]*\).*#\1#"` fi echo "$proj" } ########## es geht los ################# echo 'Content-Type: text/html' echo # Header anzeigen echo '' echo 'TracAdmin-Konsole (handgemacht)' echo '' echo '