diff options
author | Michael Larabel <michael@phx-laptop.(none)> | 2008-11-12 16:05:55 -0500 |
---|---|---|
committer | Michael Larabel <michael@phx-laptop.(none)> | 2008-11-13 10:34:51 -0500 |
commit | c23af20b5688541fb2c93105f817f802d2f33d71 (patch) | |
tree | fc8f814cd791032e19c62802358d8d1afce2af23 /pts-core/options/module_setup.php | |
parent | 78bb4f6930b02aaaeb74d4d09c4a406da88ea98f (diff) | |
download | phoronix-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.php | 82 |
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"; + } + } +} + +?> |