tripal_launch_job.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. /**
  3. * @file
  4. * This script will launch any waiting tripal jobs in succession.
  5. *
  6. * This script must be run at the base directory level of the drupal installation
  7. * in order to pick up all necessary dependencies
  8. */
  9. $stdout = fopen('php://stdout', 'w');
  10. // we require one command-line argument
  11. if (sizeof($argv) < 5) {
  12. print_usage($stdout);
  13. exit;
  14. }
  15. $job_id = $argv[1];
  16. $root = $argv[2];
  17. $username = $argv[3];
  18. $do_parallel = $argv[4];
  19. /**
  20. * Root directory of Drupal installation.
  21. */
  22. define('DRUPAL_ROOT', getcwd());
  23. require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
  24. drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
  25. menu_execute_active_handler();
  26. $drupal_base_url = parse_url('http://www.example.com');
  27. $_SERVER['HTTP_HOST'] = $drupal_base_url['host'];
  28. // $_SERVER['PHP_SELF'] = $drupal_base_url['path'].'/index.php';
  29. $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] = $_SERVER['PHP_SELF'];
  30. $_SERVER['REMOTE_ADDR'] = NULL;
  31. $_SERVER['REQUEST_METHOD'] = NULL;
  32. $results = db_query("SELECT * FROM {users} WHERE name = :name", array(':name' => $username));
  33. $u = $results->fetchObject();
  34. if (!$u) {
  35. fwrite($stdout, "'$username' is not a valid Drupal username. exiting...\n");
  36. exit;
  37. }
  38. global $user;
  39. $user = user_load($u->uid);
  40. fwrite($stdout, "Tripal Job Launcher\n");
  41. fwrite($stdout, "Running as user ' . $username . '\n");
  42. fwrite($stdout, "-------------------\n");
  43. tripal_launch_job($do_parallel);
  44. /**
  45. * Print out the usage instructions if they are not followed correctly
  46. *
  47. * @ingroup tripal_core
  48. */
  49. function print_usage($stdout) {
  50. fwrite($stdout, "Usage:\n");
  51. fwrite($stdout, " php tripal_launch_job <job_id> <drupal_root_path> <username> <do parallel>\n\n");
  52. fwrite($stdout, " where <username> is a Drupal user name\n\n");
  53. }