summaryrefslogtreecommitdiff
path: root/maintenance/hiphop/run-server
diff options
context:
space:
mode:
Diffstat (limited to 'maintenance/hiphop/run-server')
-rw-r--r--maintenance/hiphop/run-server75
1 files changed, 75 insertions, 0 deletions
diff --git a/maintenance/hiphop/run-server b/maintenance/hiphop/run-server
new file mode 100644
index 00000000..0ad43134
--- /dev/null
+++ b/maintenance/hiphop/run-server
@@ -0,0 +1,75 @@
+#!/usr/bin/hphpi -f
+<?php
+
+require( dirname( __FILE__ ) . '/../Maintenance.php' );
+
+class RunHipHopServer extends Maintenance {
+ function __construct() {
+ parent::__construct();
+ $this->addOption( 'interpret', 'Run in interpreted mode' );
+ }
+
+ function execute() {
+ if ( $this->hasOption( 'interpret' ) ) {
+ $this->runInterpreted();
+ } else {
+ $this->runCompiled();
+ }
+ }
+
+ function runCompiled() {
+ global $wgHipHopBuildDirectory;
+ $thisDir = realpath( dirname( __FILE__ ) );
+ $IP = realpath( "$thisDir/../.." );
+ if ( strval( $wgHipHopBuildDirectory ) !== '' ) {
+ $buildDir = $wgHipHopBuildDirectory;
+ } else {
+ $buildDir = "$thisDir/build";
+ }
+
+ if ( file_exists( "$buildDir/source" ) ) {
+ $sourceBase = "$buildDir/source";
+ } else {
+ $sourceBase = realpath( "$IP/.." );
+ }
+
+ passthru(
+ 'cd ' . wfEscapeShellArg( $sourceBase ) . " && " .
+ 'MW_INSTALL_PATH=' . wfEscapeShellArg( $IP ) . ' ' .
+ wfEscapeShellArg(
+ "$buildDir/persistent/mediawiki-hphp",
+ '-c', "$thisDir/server.conf",
+ '-v', "Server.SourceRoot=$sourceBase",
+ '-v', "Server.IncludeSearchPaths.0=$sourceBase",
+ '-v', 'ServerVariables.MW_COMPILED=1',
+ '--mode=server',
+ '--port=8080'
+ ),
+ $ret
+ );
+ exit( $ret );
+ }
+
+ function runInterpreted() {
+ $thisDir = realpath( dirname( __FILE__ ) );
+ $IP = realpath( "$thisDir/../.." );
+ $sourceBase = realpath( "$IP/.." );
+
+ passthru(
+ 'cd ' . wfEscapeShellArg( $sourceBase ) . " && " .
+ 'MW_INSTALL_PATH=' . wfEscapeShellArg( $IP ) . ' ' .
+ wfEscapeShellArg(
+ 'hphpi',
+ '-c', "$thisDir/server.conf",
+ '-v', "Server.SourceRoot=$sourceBase",
+ '-v', "Server.IncludeSearchPaths.0=$sourceBase",
+ '--mode=server',
+ '--port=8080'
+ ),
+ $ret
+ );
+ exit( $ret );
+ }
+}
+$maintClass = 'RunHipHopServer';
+require_once( RUN_MAINTENANCE_IF_MAIN );