summaryrefslogtreecommitdiffstats
path: root/pts-core/options/module_setup.php
diff options
context:
space:
mode:
authorMichael Larabel <michael@phx-laptop.(none)>2008-11-12 16:05:55 -0500
committerMichael Larabel <michael@phx-laptop.(none)>2008-11-13 10:34:51 -0500
commitc23af20b5688541fb2c93105f817f802d2f33d71 (patch)
treefc8f814cd791032e19c62802358d8d1afce2af23 /pts-core/options/module_setup.php
parent78bb4f6930b02aaaeb74d4d09c4a406da88ea98f (diff)
downloadphoronix-test-suite-upstream-c23af20b5688541fb2c93105f817f802d2f33d71.tar.gz
phoronix-test-suite-upstream-c23af20b5688541fb2c93105f817f802d2f33d71.tar.xz
phoronix-test-suite-upstream-c23af20b5688541fb2c93105f817f802d2f33d71.zip
pts-core: Modularize all Phoronix Test Suite run-time user options into
options/ classes and using phoronix-test-suite.php interface pts-core: Remove pts-run-cmd.php now that all options are modularized
Diffstat (limited to 'pts-core/options/module_setup.php')
-rw-r--r--pts-core/options/module_setup.php82
1 files changed, 82 insertions, 0 deletions
diff --git a/pts-core/options/module_setup.php b/pts-core/options/module_setup.php
new file mode 100644
index 0000000..b5b4d81
--- /dev/null
+++ b/pts-core/options/module_setup.php
@@ -0,0 +1,82 @@
+<?php
+
+/*
+ Phoronix Test Suite
+ URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
+ Copyright (C) 2008, Phoronix Media
+ Copyright (C) 2008, Michael Larabel
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+class module_setup
+{
+ public static function run($r)
+ {
+ $module = strtolower($r[0]);
+
+ if(is_file(MODULE_DIR . $module . ".php"))
+ {
+ $pre_message = "";
+
+ if(!in_array($module, pts_attached_modules()) && !class_exists($module))
+ {
+ include(MODULE_DIR . $module . ".php");
+ }
+
+ $module_name = pts_php_module_call($module, "module_name");
+ $module_description = pts_php_module_call($module, "module_description");
+ $module_setup = pts_php_module_call($module, "module_setup");
+
+ echo pts_string_header("Module: " . $module_name);
+ echo $module_description . "\n";
+
+ if(count($module_setup) == 0)
+ {
+ echo "\nThere are no options available for configuring with the " . $module . " module.";
+ }
+ else
+ {
+ $set_options = array();
+ foreach($module_setup as $module_option)
+ {
+ do
+ {
+ echo "\n" . $module_option->get_formatted_question();
+ $input = trim(fgets(STDIN));
+ }
+ while(!$module_option->is_supported_value($input));
+
+ if(empty($input))
+ {
+ $input = $module_option->get_default_value();
+ }
+
+ $this_input_identifier = $module_option->get_identifier();
+
+ $set_options[$module . "__" . $this_input_identifier] = $input;
+ }
+ pts_module_config_init($set_options);
+ }
+
+ echo "\n";
+ }
+ else
+ {
+ echo "\n" . $module . " is not a recognized or configurable module.\n";
+ }
+ }
+}
+
+?>