#!/usr/bin/env php . */ // Abort if called from a web server if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) { print "This script must be run from the command line\n"; exit(); } define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); function update_core($dir, $domain) { $old = getcwd(); chdir($dir); passthru(<<isDir() && !$item->isDot()) { $name = $item->getBasename(); if (file_exists("$dir/plugins/$name/{$name}Plugin.php")) { $plugins[] = $name; } } } return $plugins; } function get_plugin_sources($dir) { $files = array(); $dirs = new RecursiveDirectoryIterator($dir); $iter = new RecursiveIteratorIterator($dirs); foreach ($iter as $pathname => $item) { if ($item->isFile() && preg_match('/\.php$/', $item->getBaseName())) { $files[] = $pathname; } } return $files; } function plugin_using_gettext($dir) { $files = get_plugin_sources($dir); foreach ($files as $pathname) { // Check if the file is using our _m gettext wrapper $code = file_get_contents($pathname); if (preg_match('/\b_m\(/', $code)) { return true; } } return false; } function update_plugin($basedir, $name) { $dir = "$basedir/plugins/$name"; if (plugin_using_gettext($dir)) { do_update_plugin($dir, $name); do_translatewiki_plugin($basedir, $name); return true; } else { return false; } } $args = $_SERVER['argv']; array_shift($args); $all = false; $core = false; $allplugins = false; $plugins = array(); if (count($args) == 0) { $all = true; } foreach ($args as $arg) { if ($arg == '--all') { $all = true; } elseif ($arg == "--core") { $core = true; } elseif ($arg == "--plugins") { $allplugins = true; } elseif (substr($arg, 0, 9) == "--plugin=") { $plugins[] = substr($arg, 9); } } if ($all || $core) { echo "core..."; update_core(INSTALLDIR, 'statusnet'); echo " ok\n"; } if ($all || $allplugins) { $plugins = get_plugins(INSTALLDIR); } if ($plugins) { foreach ($plugins as $plugin) { echo "$plugin..."; if (update_plugin(INSTALLDIR, $plugin)) { echo " ok\n"; } else { echo " not localized\n"; } } }