diff options
author | Evan Prodromou <evan@status.net> | 2010-03-10 14:13:02 -0500 |
---|---|---|
committer | Evan Prodromou <evan@status.net> | 2010-03-10 14:13:02 -0500 |
commit | a2cc26ba8a21aa3614ebfc4a77c0bec9ffb2655d (patch) | |
tree | 76eae27ba51ae642db93f3db0a3a83fda573a352 /scripts | |
parent | 3fba9a16f5e908b62e486d0e0df02fcb6e0a7796 (diff) | |
parent | 69b2f19b6fef793aa607c6d8f4590b93e2565626 (diff) |
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/command.php | 80 | ||||
-rw-r--r-- | scripts/flushsite.php | 45 |
2 files changed, 125 insertions, 0 deletions
diff --git a/scripts/command.php b/scripts/command.php new file mode 100755 index 000000000..6041b02eb --- /dev/null +++ b/scripts/command.php @@ -0,0 +1,80 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - a distributed open-source microblogging tool + * Copyright (C) 2008, 2009, 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__) . '/..')); + +$shortoptions = 'i:n:'; +$longoptions = array('id=', 'nickname='); + +$helptext = <<<END_OF_USERROLE_HELP +command.php [options] [command line] +Perform commands on behalf of a user, such as sub, unsub, join, drop + + -i --id ID of the user + -n --nickname nickname of the user + +END_OF_USERROLE_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + + + +function interpretCommand($user, $body) +{ + $inter = new CommandInterpreter(); + $chan = new CLIChannel(); + $cmd = $inter->handle_command($user, $body); + if ($cmd) { + $cmd->execute($chan); + return true; + } else { + $chan->error($user, "Not a valid command. Try 'help'?"); + return false; + } +} + + + +if (have_option('i', 'id')) { + $id = get_option_value('i', 'id'); + $user = User::staticGet('id', $id); + if (empty($user)) { + print "Can't find user with ID $id\n"; + exit(1); + } +} else if (have_option('n', 'nickname')) { + $nickname = get_option_value('n', 'nickname'); + $user = User::staticGet('nickname', $nickname); + if (empty($user)) { + print "Can't find user with nickname '$nickname'\n"; + exit(1); + } +} else { + print "You must provide either an ID or a nickname.\n\n"; + print $helptext; + exit(1); +} + +// @todo refactor the interactive console in console.php and use +// that to optionally make an interactive test console here too. +// Would be good to help people test commands when XMPP or email +// isn't available locally. +interpretCommand($user, implode(' ', $args)); + diff --git a/scripts/flushsite.php b/scripts/flushsite.php new file mode 100644 index 000000000..b7f385ac4 --- /dev/null +++ b/scripts/flushsite.php @@ -0,0 +1,45 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - a distributed open-source microblogging tool + * Copyright (C) 2008, 2009, 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__) . '/..')); + +$shortoptions = 'd'; +$longoptions = array('delete'); + +$helptext = <<<END_OF_FLUSHSITE_HELP +flushsite.php -s<sitename> +Flush the site with the given name from memcached. + +END_OF_FLUSHSITE_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +$nickname = common_config('site', 'nickname'); + +$sn = Status_network::memGet('nickname', $nickname); + +if (empty($sn)) { + print "No such site.\n"; + exit(-1); +} + +print "Flushing cache for {$nickname}..."; +$sn->decache(); +print "OK.\n";
\ No newline at end of file |