summaryrefslogtreecommitdiffstats
path: root/pts-core/functions/pts-functions_modules.php
diff options
context:
space:
mode:
authorMichael Larabel <michael@phx-laptop.(none)>2008-07-25 20:18:27 -0400
committerMichael Larabel <michael@phx-laptop.(none)>2008-08-03 11:50:25 -0400
commitede312435e0cf3ae85033b2a5b74c16d075acd1a (patch)
tree62b04f9c8bb79e39f797f4c2da0757156361e7d2 /pts-core/functions/pts-functions_modules.php
parent62c1aad5246360a024db490e606777553c9f59fe (diff)
downloadphoronix-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.php34
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;
+}
?>