diff options
author | Michael Larabel <michael@phx-laptop.(none)> | 2008-07-25 20:18:27 -0400 |
---|---|---|
committer | Michael Larabel <michael@phx-laptop.(none)> | 2008-08-03 11:50:25 -0400 |
commit | ede312435e0cf3ae85033b2a5b74c16d075acd1a (patch) | |
tree | 62b04f9c8bb79e39f797f4c2da0757156361e7d2 /pts-core/functions/pts-functions_modules.php | |
parent | 62c1aad5246360a024db490e606777553c9f59fe (diff) | |
download | phoronix-test-suite-upstream-ede312435e0cf3ae85033b2a5b74c16d075acd1a.tar.gz phoronix-test-suite-upstream-ede312435e0cf3ae85033b2a5b74c16d075acd1a.tar.xz phoronix-test-suite-upstream-ede312435e0cf3ae85033b2a5b74c16d075acd1a.zip |
pts_module: Add support for shell script PTS modules
Diffstat (limited to 'pts-core/functions/pts-functions_modules.php')
-rw-r--r-- | pts-core/functions/pts-functions_modules.php | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/pts-core/functions/pts-functions_modules.php b/pts-core/functions/pts-functions_modules.php index 95422cc..4b05919 100644 --- a/pts-core/functions/pts-functions_modules.php +++ b/pts-core/functions/pts-functions_modules.php @@ -105,7 +105,10 @@ function pts_load_modules() { pts_load_module($module); - eval("\$module_store_vars = " . $module . "::\$module_store_vars;"); + if(pts_module_type($module) == "PHP") + eval("\$module_store_vars = " . $module . "::\$module_store_vars;"); + else + $module_store_vars = array(); if(is_array($module_store_vars) && count($module_store_vars) > 0) foreach($module_store_vars as $store_var) @@ -124,14 +127,19 @@ function pts_load_modules() } function pts_load_module($module) { - @include(MODULE_DIR . $module . ".php"); + if(pts_module_type($module) == "PHP") + @include(MODULE_DIR . $module . ".php"); } function pts_module_process($process) { foreach($GLOBALS["PTS_MODULES"] as $module) { $GLOBALS["PTS_MODULE_CURRENT"] = $module; - eval($module . "::" . $process . "();"); // TODO: This can be cleaned up once PHP 5.3.0+ is out there and adopted + + if(pts_module_type($module) == "PHP") + eval($module . "::" . $process . "();"); // TODO: This can be cleaned up once PHP 5.3.0+ is out there and adopted + else + shell_exec("sh " . MODULE_DIR . $module . ".sh " . $process); } $GLOBALS["PTS_MODULE_CURRENT"] = FALSE; } @@ -156,5 +164,25 @@ function pts_module_set_environment_variable($name, $value) if(getenv($name) == FALSE) putenv($name . "=" . $value); } +function pts_module_type($name) +{ + if(isset($GLOBALS["PTS_MODULE_CACHE"]["MODULE_TYPES"][$name])) + { + $type = $GLOBALS["PTS_MODULE_CACHE"]["MODULE_TYPES"][$name]; + } + else + { + if(is_file(MODULE_DIR . $name . ".php")) + $type = "PHP"; + else if(is_file(MODULE_DIR . $name . ".sh")) + $type = "SH"; + else + $type = null; + + $GLOBALS["PTS_MODULE_CACHE"]["MODULE_TYPES"][$name] = $type; + } + + return $type; +} ?> |