]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Add a script to clear the cache for a given key
authorEvan Prodromou <evan@status.net>
Mon, 1 Feb 2010 03:58:29 +0000 (22:58 -0500)
committerEvan Prodromou <evan@status.net>
Mon, 1 Feb 2010 03:58:29 +0000 (22:58 -0500)
Like showcache.php, clearcache.php clears the cache for a given key.

scripts/clearcache.php [new file with mode: 0644]

diff --git a/scripts/clearcache.php b/scripts/clearcache.php
new file mode 100644 (file)
index 0000000..702c1e3
--- /dev/null
@@ -0,0 +1,70 @@
+#!/usr/bin/env php
+<?php
+/*
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 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 = "t:c:v:k:";
+
+$helptext = <<<ENDOFHELP
+USAGE: clearcache.php <args>
+clears the cached object based on the args
+
+  -t table     Table to look up
+  -c column    Column to look up, default "id"
+  -v value     Value to look up
+  -k key       Key to look up; other args are ignored
+
+ENDOFHELP;
+
+require_once INSTALLDIR.'/scripts/commandline.inc';
+
+$karg = get_option_value('k');
+
+if (!empty($karg)) {
+    $k = common_cache_key($karg);
+} else {
+    $table = get_option_value('t');
+    if (empty($table)) {
+        die("No table or key specified\n");
+    }
+    $column = get_option_value('c');
+    if (empty($column)) {
+        $column = 'id';
+    }
+    $value = get_option_value('v');
+
+    $k = Memcached_DataObject::cacheKey($table, $column, $value);
+}
+
+print "Clearing key '$k'...";
+
+$c = common_memcache();
+
+if (empty($c)) {
+    die("Can't initialize cache object!\n");
+}
+
+$result = $c->delete($k);
+
+if ($result) {
+    print "OK.\n";
+} else {
+    print "FAIL.\n";
+}