<?php

define('__MASS_DOCUMENT_ROOT_WRONG_ROOT_REGEX', '|^/usr/htdocs|');
define('__MASS_DOCUMENT_ROOT_HOME', '/home');

function __mass_document_root_hack() {
    if (preg_match(__MASS_DOCUMENT_ROOT_WRONG_ROOT_REGEX,
		   $_SERVER['DOCUMENT_ROOT']) <= 0) {
	return;
    }
    $newroot = $_SERVER['SCRIPT_FILENAME'];
    if (empty($newroot)) {
	die('Empty SCRIPT_FILENAME');
    }
    $matches = array();
    if (preg_match('|' . __MASS_DOCUMENT_ROOT_HOME .
		   '/([^/]+)/svn/([^/]+)/trunk/|', $newroot, $matches) > 0) {
	$newroot = __MASS_DOCUMENT_ROOT_HOME . '/' . $matches[1] . '/svn/' .
	  $matches[2] . '/trunk';
        $_SERVER['SVN_BRANCH'] = 'trunk';
	$_SERVER['SVN_TRUNK'] = true;
        $_SERVER['SVN_PROJECT'] = $matches[2];

    } elseif (preg_match('|' . __MASS_DOCUMENT_ROOT_HOME .
			 '/([^/]+)/svn/([^/]+)/branches/([^/]+)/|',
			 $newroot, $matches) > 0) {
	$newroot = __MASS_DOCUMENT_ROOT_HOME . '/' . $matches[1] . '/svn/' .
	  $matches[2] . '/branches/' . $matches[3];
	$_SERVER['SVN_BRANCH'] = $matches[3];
        $_SERVER['SVN_PROJECT'] = $matches[2];
    } else {
	die("Unexpected script filename: [$newroot]");
    }
    $_SERVER['SVN_USER'] = $matches[1];
    $_SERVER['DOCUMENT_ROOT'] = $newroot;
    global $DOCUMENT_ROOT;        
    $DOCUMENT_ROOT = $newroot;
}

__mass_document_root_hack();

?>
