diff options
-rw-r--r-- | lib/statusnet.php | 15 | ||||
-rwxr-xr-x | scripts/showplugins.php | 38 |
2 files changed, 53 insertions, 0 deletions
diff --git a/lib/statusnet.php b/lib/statusnet.php index eba9ab9b8..2aa73486e 100644 --- a/lib/statusnet.php +++ b/lib/statusnet.php @@ -31,6 +31,7 @@ class StatusNet { protected static $have_config; protected static $is_api; + protected static $plugins = array(); /** * Configure and instantiate a plugin into the current configuration. @@ -74,10 +75,23 @@ class StatusNet $inst->$aname = $avalue; } } + + // Record activated plugins for later display/config dump + self::$plugins[] = array($name, $attrs); + return true; } /** + * Get a list of activated plugins in this process. + * @return array of (string $name, array $args) pairs + */ + public static function getActivePlugins() + { + return self::$plugins; + } + + /** * Initialize, or re-initialize, StatusNet global configuration * and plugins. * @@ -232,6 +246,7 @@ class StatusNet global $_server, $_path, $config; Event::clearHandlers(); + self::$plugins = array(); // try to figure out where we are. $server and $path // can be set by including module, else we guess based diff --git a/scripts/showplugins.php b/scripts/showplugins.php new file mode 100755 index 000000000..058393b0e --- /dev/null +++ b/scripts/showplugins.php @@ -0,0 +1,38 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - a distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +foreach (StatusNet::getActivePlugins() as $data) { + list($plugin, $args) = $data; + echo "$plugin: "; + if ($args === null) { + echo "(no args)\n"; + } else { + foreach ($args as $arg => $val) { + echo "\n $arg: "; + var_export($val); + } + echo "\n"; + } + echo "\n"; +} |