define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
-$shortoptions = 'd';
-$longoptions = array('delete');
+$shortoptions = 'da';
+$longoptions = array('delete', 'all');
$helptext = <<<END_OF_SETCONFIG_HELP
setconfig.php [options] [section] [setting] <value>
With three args, set the setting to the value.
With two args, just show the setting.
With -d, delete the setting.
+With no args, lists all currently set values.
[section] section to use (required)
[setting] setting to use (required)
<value> value to set (optional)
-d --delete delete the setting (no value)
+ -a --all list all configuration, not just the database values
END_OF_SETCONFIG_HELP;
-require_once INSTALLDIR.'/scripts/commandline.inc';
+require_once INSTALLDIR.'/scripts/commandline.inc.php';
+
+if (empty($args)) {
+ if (have_option('a', 'all')) {
+ foreach ($config as $section => $section_value) {
+ foreach ($section_value as $setting => $value) {
+ if (have_option('v', 'verbose') || !is_array($value)) {
+ // Don't print array's without the verbose flag
+ printf("%-20s %-20s %s\n", $section, $setting, var_export($value, true));
+ }
+ }
+ }
+ } else {
+ $count = 0;
+ $config = new Config();
+ $config->find();
+ while ($config->fetch()) {
+ $count++;
+ printf("%-20s %-20s %s\n", $config->section, $config->setting,
+ var_export($config->value, true));
+ }
+ if ($count == 0) {
+ print "No configuration set in database for this site.\n";
+ }
+ }
+ exit(0);
+}
if (count($args) < 2 || count($args) > 3) {
show_help();