added small language pack update script
[NeonServV5.git] / language.php
diff --git a/language.php b/language.php
new file mode 100644 (file)
index 0000000..70095b9
--- /dev/null
@@ -0,0 +1,152 @@
+#!/usr/bin/php
+<?php
+/* Language updater
+ * by pk910
+ * 2.11.11
+ */
+
+
+if(strtolower(PHP_OS) == "winnt") {
+ define(WIN32,true);
+} else {
+ define(WIN32,false);
+}
+
+$uplink = array();
+$uplink['host'] = 'dev.pk910.de';
+$uplink['user'] = 'neonserv_lang';
+$uplink['pass'] = 'LLcrzq28RN2GBqRP'; /* just ignore it :P  this user has only select access to the required 2 tables & 3 columns in them */
+$uplink['base'] = 'neonserv_dev';
+
+$local = array();
+
+function shell_color($fg,$bg,$attr=1) {
+    if(WIN32) return false;
+    echo sprintf("%c[%d;%d;%dm", 0x1B, $attr, $fg + 30, $bg + 40);
+}
+
+define("NORMAL",-30);
+define("BLACK",0);
+define("RED",1);
+define("GREEN",2);
+define("YELLOW",3);
+define("BLUE",4);
+define("PURPLE",5);
+define("CYAN",6);
+define("WHITE",7);
+
+$fp = fopen("php://stdin", "r");
+if(!$fp) {
+    die("ERROR: can not open stdin for reading.\n");
+}
+
+shell_color(BLUE,BLACK);
+echo"NeonServ v5 - Languagepack Updater\n";
+shell_color(CYAN,BLACK);
+echo"This tool will donload the actual language pack from\n";
+echo"dev.pk910.de and copy it into your database.\n";
+echo"\n";
+shell_color(YELLOW,BLACK);
+echo "DATABASE INFORMATION\n";
+echo "Please enter your database login data.\n";
+shell_color(GREEN,BLACK);
+echo "Hostname [localhost]: ";
+shell_color(NORMAL,BLACK);
+$line = fgets($fp, 4096);
+$line = str_replace(array("\n", "\r"),array("", ""),$line);
+if($line == "") $line = "localhost";
+$local['host'] = $line;
+shell_color(GREEN,BLACK);
+echo "Username [neonserv]: ";
+shell_color(NORMAL,BLACK);
+$line = fgets($fp, 4096);
+$line = str_replace(array("\n", "\r"),array("", ""),$line);
+if($line == "") $line = "neonserv";
+$local['user'] = $line;
+shell_color(GREEN,BLACK);
+echo "Password []: ";
+shell_color(NORMAL,BLACK);
+$line = fgets($fp, 4096);
+$line = str_replace(array("\n", "\r"),array("", ""),$line);
+$local['pass'] = $line;
+shell_color(GREEN,BLACK);
+echo "Database [neonserv]: ";
+shell_color(NORMAL,BLACK);
+$line = fgets($fp, 4096);
+$line = str_replace(array("\n", "\r"),array("", ""),$line);
+if($line == "") $line = "neonserv";
+$local['base'] = $line;
+echo"\n\n";
+shell_color(YELLOW,BLACK);
+echo "Checking local MySQL... ";
+$local['conn'] = @mysql_connect($local['host'], $local['user'], $local['pass']);
+@mysql_select_db($local['base'], $local['conn']) OR $local['conn'] = NULL;
+if($local['conn']) {
+    shell_color(GREEN,BLACK);
+    echo"ok\n";
+} else {
+    shell_color(RED,BLACK);
+    echo"fail\n";
+    shell_color(NORMAL,NORMAL);
+    die();
+}
+shell_color(YELLOW,BLACK);
+echo "Checking remote MySQL... ";
+$uplink['conn'] = @mysql_connect($uplink['host'], $uplink['user'], $uplink['pass']);
+@mysql_select_db($uplink['base'], $uplink['conn']) OR $uplink['conn'] = NULL;
+if($uplink['conn']) {
+    shell_color(GREEN,BLACK);
+    echo"ok\n";
+} else {
+    shell_color(RED,BLACK);
+    echo"fail\n";
+    shell_color(NORMAL,NORMAL);
+    die();
+}
+shell_color(YELLOW,BLACK);
+echo "Copying `language` table... ";
+shell_color(RED,BLACK);
+$copied = 0;
+$updated = 0;
+$result = mysql_query("SELECT `lang`, `ident`, `text` FROM `language`", $uplink['conn']);
+while($row = mysql_fetch_array($result)) {
+    $result2 = mysql_query("SELECT `id`, `text` FROM `language` WHERE `lang` = '".mysql_real_escape_string($row['lang'])."' AND `ident` = '".mysql_real_escape_string($row['ident'])."'", $local['conn']);
+    if(mysql_num_rows($result2)) {
+        $row2 = mysql_fetch_array($result2);
+        if($row2['text'] != $row['text']) {
+            $updated++;
+            mysql_query("UPDATE `language` SET `text` = '".mysql_real_escape_string($row['text'])."' WHERE `id` = '".$row2['id']."'", $local['conn']);
+        }
+    } else {
+        $copied++;
+        mysql_query("INSERT INTO `language` (`lang`, `ident`, `text`) VALUES ('".mysql_real_escape_string($row['lang'])."', '".mysql_real_escape_string($row['ident'])."', '".mysql_real_escape_string($row['text'])."');", $local['conn']);
+    }
+}
+shell_color(GREEN,BLACK);
+echo"copied ".$copied." & updated ".$updated." entrys.\n";
+shell_color(YELLOW,BLACK);
+echo "Copying `help` table... ";
+shell_color(RED,BLACK);
+$copied = 0;
+$updated = 0;
+$result = mysql_query("SELECT `lang`, `ident`, `text` FROM `help`", $uplink['conn']);
+while($row = mysql_fetch_array($result)) {
+    $result2 = mysql_query("SELECT `id`, `text` FROM `help` WHERE `lang` = '".mysql_real_escape_string($row['lang'])."' AND `ident` = '".mysql_real_escape_string($row['ident'])."'", $local['conn']);
+    if(mysql_num_rows($result2)) {
+        $row2 = mysql_fetch_array($result2);
+        if($row2['text'] != $row['text']) {
+            $updated++;
+            mysql_query("UPDATE `help` SET `text` = '".mysql_real_escape_string($row['text'])."' WHERE `id` = '".$row2['id']."'", $local['conn']);
+        }
+    } else {
+        $copied++;
+        mysql_query("INSERT INTO `help` (`lang`, `ident`, `text`) VALUES ('".mysql_real_escape_string($row['lang'])."', '".mysql_real_escape_string($row['ident'])."', '".mysql_real_escape_string($row['text'])."');", $local['conn']);
+    }
+}
+shell_color(GREEN,BLACK);
+echo"copied ".$copied." & updated ".$updated." entrys.\n";
+echo"\n";
+echo"finished.";
+shell_color(NORMAL,NORMAL);
+echo"\n\n";
+?>
\ No newline at end of file