|
@@ -0,0 +1,106 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+/* IMPORTANT! DISABLE apc before launching this script.*/
|
|
|
+/* This script can be used to launch jobs on a multi-site Drupal installation*/
|
|
|
+
|
|
|
+ini_set('apc.enable_cli','0');
|
|
|
+
|
|
|
+
|
|
|
+include_once './includes/bootstrap.inc';
|
|
|
+
|
|
|
+fwrite(STDOUT,"Running Tripal Job Launcher\n");
|
|
|
+
|
|
|
+/***********
|
|
|
+* SETTINGS
|
|
|
+**********/
|
|
|
+
|
|
|
+//the location of the 'sites' directory relative to this script.
|
|
|
+$sitesDir = 'sites';
|
|
|
+$debug=0;
|
|
|
+/***********
|
|
|
+* END SETTINGS
|
|
|
+**********/
|
|
|
+
|
|
|
+
|
|
|
+//error_reporting(E_ALL);
|
|
|
+
|
|
|
+include ("Console/Getopt.php");
|
|
|
+
|
|
|
+// initialize object
|
|
|
+$cg = new Console_Getopt();
|
|
|
+
|
|
|
+/* define list of allowed options - p = h:sitename, u:username */
|
|
|
+$allowedShortOptions = "h:u:";
|
|
|
+
|
|
|
+// read the command line
|
|
|
+$args = $cg->readPHPArgv();
|
|
|
+
|
|
|
+// get the options
|
|
|
+$ret = $cg->getopt($args, $allowedShortOptions);
|
|
|
+
|
|
|
+// check for errors and die with an error message if there was a problem
|
|
|
+if (PEAR::isError($ret)) {
|
|
|
+ die ("Error in command line: " . $ret->getMessage() . "\n");
|
|
|
+}
|
|
|
+
|
|
|
+ini_set('include_path',ini_get('include_path'). PATH_SEPARATOR . './scripts');
|
|
|
+
|
|
|
+/* This doesn't work in every case: getopt function is not always available
|
|
|
+$options = getopt("h:r:");
|
|
|
+var_dump($options);
|
|
|
+*/
|
|
|
+
|
|
|
+$hostname = "";
|
|
|
+$username = "";
|
|
|
+
|
|
|
+// parse the options array
|
|
|
+$opts = $ret[0];
|
|
|
+if (sizeof($opts) > 0) {
|
|
|
+ // if at least one option is present
|
|
|
+ foreach ($opts as $opt) {
|
|
|
+ switch ($opt[0]) {
|
|
|
+ case 'h':
|
|
|
+ $hostname = $opt[1];
|
|
|
+ break;
|
|
|
+ case 'u':
|
|
|
+ $username = $opt[1];
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ fwrite(STDOUT,'Usage: \n');
|
|
|
+ fwrite(STDOUT,'- h hostname\n');
|
|
|
+ fwrite(STDOUT." -u username\n");
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+}else{
|
|
|
+ fwrite(STDOUT,"Usage: \n");
|
|
|
+ fwrite(STDOUT," -h hostname\n");
|
|
|
+ fwrite(STDOUT," -u username\n");
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+runjob($hostname, $username);
|
|
|
+
|
|
|
+
|
|
|
+function runjob($sitename, $username) {
|
|
|
+
|
|
|
+ $_SERVER['SCRIPT_NAME'] = '/sites/all/modules/tripal_jobs/tripal_jobs_launcher.php';
|
|
|
+ $_SERVER['SCRIPT_FILENAME'] = '/sites/all/modules/tripal_jobs/tripal_jobs_launcher.php';
|
|
|
+ $_SERVER['HTTP_HOST'] = $sitename;
|
|
|
+ $_SERVER['REMOTE_ADDR'] = 'localhost';
|
|
|
+ $_SERVER['REQUEST_METHOD'] = 'GET';
|
|
|
+
|
|
|
+ drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
|
|
|
+
|
|
|
+ if(!db_fetch_object(db_query("SELECT * FROM {users} WHERE name = '$username'"))){
|
|
|
+ fwrite(STDOUT, "'$username' is not a valid Drupal username. exiting...\n");
|
|
|
+ exit;
|
|
|
+ }
|
|
|
+ global $user;
|
|
|
+ $user = $username;
|
|
|
+ $user = user_load(array('name' => $username));
|
|
|
+
|
|
|
+ tripal_jobs_launch();
|
|
|
+}
|
|
|
+?>
|