From 8ae70483f022b612786e1ceb3902dc2119bbb0bc Mon Sep 17 00:00:00 2001 From: root <root@rivolta.investici.org> Date: Tue, 8 Mar 2011 11:51:48 +0000 Subject: [PATCH] Add utility to discover the blog backend given its name --- r2db/tools/get-backend.php | 53 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100755 r2db/tools/get-backend.php diff --git a/r2db/tools/get-backend.php b/r2db/tools/get-backend.php new file mode 100755 index 000000000..6b4725d6f --- /dev/null +++ b/r2db/tools/get-backend.php @@ -0,0 +1,53 @@ +#!/opt/noblogs/cron/php-noblogs +<?php + +if ($argv[1]) { + $blog_domain = $argv[1]; + if (!preg_match('/\.noblogs\.org$/', $blog_domain)) { + $blog_domain = $blog_domain . '.noblogs.org'; + } +} else { + die("Usage: get-backend <blog_name>\n"); +} + +// Load wordpress api. +define('WP_CACHE',false); +/** Setup WordPress environment */ +require_once('wp-load.php'); +require_once('db-config.php'); + + +function new_hash($dbid, $reversemap) { + global $wpdb; + $lookup = $wpdb->hash_map->lookup($dbid); + $backend = $reversemap[$lookup]; + $result = array(); + if (preg_match('/^(.*):([0-9]*)$/', $backend['host'], $matches)) { + $result['host'] = $matches[1]; + $result['port'] = $matches[2]; + } + $result['user'] = $backend['user']; + $result['password'] = $backend['password']; + $result['db'] = $backend['name']; + return $result; +} + +function get_blog($domain) +{ + global $wpdb; + +// $sql = "SELECT blog_id, domain, path FROM $wpdb->blogs WHERE public = 1 AND deleted = 0 AND archived = '0' ORDER BY domain, path"; + $sql = "SELECT blog_id, domain, path FROM $wpdb->blogs WHERE domain = '" . $domain . "'"; + $result = $wpdb->get_results($sql); + return ($result[0]); +} + +$hashmap = new Flexihash(); +$reverse_backend_map = noblogs_load_backends(NOBLOGS_BACKEND_CONFIG, $hashmap); + +$blog = get_blog($blog_domain); +$backend = new_hash($blog->blog_id, $reverse_backend_map); + +echo "\n" . $blog_domain . " (id " . $blog->blog_id . ")\n\n"; +print_r($backend); + -- GitLab