added NeonBackup recover command
[NeonServV5.git] / language.php
1 #!/usr/bin/php
2 <?php
3 /* Language updater
4  * by pk910
5  * 2.11.11
6  */
7
8
9 if(strtolower(PHP_OS) == "winnt") {
10  define(WIN32,true);
11 } else {
12  define(WIN32,false);
13 }
14
15 $uplink = array();
16 $uplink['host'] = 'dev.pk910.de';
17 $uplink['user'] = 'neonserv_lang';
18 $uplink['pass'] = 'LLcrzq28RN2GBqRP'; /* just ignore it :P  this user has only select access to the required 2 tables & 3 columns in them */
19 $uplink['base'] = 'neonserv_dev';
20
21 $local = array();
22
23 function shell_color($fg,$bg,$attr=1) {
24     if(WIN32) return false;
25     echo sprintf("%c[%d;%d;%dm", 0x1B, $attr, $fg + 30, $bg + 40);
26 }
27
28 define("NORMAL",-30);
29 define("BLACK",0);
30 define("RED",1);
31 define("GREEN",2);
32 define("YELLOW",3);
33 define("BLUE",4);
34 define("PURPLE",5);
35 define("CYAN",6);
36 define("WHITE",7);
37
38 $fp = fopen("php://stdin", "r");
39 if(!$fp) {
40     die("ERROR: can not open stdin for reading.\n");
41 }
42
43 shell_color(BLUE,BLACK);
44 echo"NeonServ v5 - Languagepack Updater\n";
45 shell_color(CYAN,BLACK);
46 echo"This tool will download the actual language pack from\n";
47 echo"dev.pk910.de and copy it into your database.\n";
48 echo"\n";
49 shell_color(YELLOW,BLACK);
50 echo "DATABASE INFORMATION\n";
51 echo "Please enter your database login data.\n";
52 shell_color(GREEN,BLACK);
53 echo "Hostname [localhost]: ";
54 shell_color(NORMAL,BLACK);
55 $line = fgets($fp, 4096);
56 $line = str_replace(array("\n", "\r"),array("", ""),$line);
57 if($line == "") $line = "localhost";
58 $local['host'] = $line;
59 shell_color(GREEN,BLACK);
60 echo "Username [neonserv]: ";
61 shell_color(NORMAL,BLACK);
62 $line = fgets($fp, 4096);
63 $line = str_replace(array("\n", "\r"),array("", ""),$line);
64 if($line == "") $line = "neonserv";
65 $local['user'] = $line;
66 shell_color(GREEN,BLACK);
67 echo "Password []: ";
68 shell_color(NORMAL,BLACK);
69 $line = fgets($fp, 4096);
70 $line = str_replace(array("\n", "\r"),array("", ""),$line);
71 $local['pass'] = $line;
72 shell_color(GREEN,BLACK);
73 echo "Database [neonserv]: ";
74 shell_color(NORMAL,BLACK);
75 $line = fgets($fp, 4096);
76 $line = str_replace(array("\n", "\r"),array("", ""),$line);
77 if($line == "") $line = "neonserv";
78 $local['base'] = $line;
79 echo"\n\n";
80 shell_color(YELLOW,BLACK);
81 echo "Checking local MySQL... ";
82 $local['conn'] = @mysql_connect($local['host'], $local['user'], $local['pass']);
83 @mysql_select_db($local['base'], $local['conn']) OR $local['conn'] = NULL;
84 if($local['conn']) {
85     shell_color(GREEN,BLACK);
86     echo"ok\n";
87 } else {
88     shell_color(RED,BLACK);
89     echo"fail\n";
90     shell_color(NORMAL,NORMAL);
91     die();
92 }
93 shell_color(YELLOW,BLACK);
94 echo "Checking remote MySQL... ";
95 $uplink['conn'] = @mysql_connect($uplink['host'], $uplink['user'], $uplink['pass']);
96 @mysql_select_db($uplink['base'], $uplink['conn']) OR $uplink['conn'] = NULL;
97 if($uplink['conn']) {
98     shell_color(GREEN,BLACK);
99     echo"ok\n";
100 } else {
101     shell_color(RED,BLACK);
102     echo"fail\n";
103     shell_color(NORMAL,NORMAL);
104     die();
105 }
106 shell_color(YELLOW,BLACK);
107 echo "Copying `language` table... ";
108 shell_color(RED,BLACK);
109 $copied = 0;
110 $updated = 0;
111 $result = mysql_query("SELECT `lang`, `ident`, `text` FROM `language`", $uplink['conn']);
112 while($row = mysql_fetch_array($result)) {
113     $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']);
114     if(mysql_num_rows($result2)) {
115         $row2 = mysql_fetch_array($result2);
116         if($row2['text'] != $row['text']) {
117             $updated++;
118             mysql_query("UPDATE `language` SET `text` = '".mysql_real_escape_string($row['text'])."' WHERE `id` = '".$row2['id']."'", $local['conn']);
119         }
120     } else {
121         $copied++;
122         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']);
123     }
124 }
125 shell_color(GREEN,BLACK);
126 echo"copied ".$copied." & updated ".$updated." entrys.\n";
127 shell_color(YELLOW,BLACK);
128 echo "Copying `help` table... ";
129 shell_color(RED,BLACK);
130 $copied = 0;
131 $updated = 0;
132 $result = mysql_query("SELECT `lang`, `ident`, `text` FROM `help`", $uplink['conn']);
133 while($row = mysql_fetch_array($result)) {
134     $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']);
135     if(mysql_num_rows($result2)) {
136         $row2 = mysql_fetch_array($result2);
137         if($row2['text'] != $row['text']) {
138             $updated++;
139             mysql_query("UPDATE `help` SET `text` = '".mysql_real_escape_string($row['text'])."' WHERE `id` = '".$row2['id']."'", $local['conn']);
140         }
141     } else {
142         $copied++;
143         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']);
144     }
145 }
146 shell_color(GREEN,BLACK);
147 echo"copied ".$copied." & updated ".$updated." entrys.\n";
148 echo"\n";
149 echo"finished.";
150 shell_color(NORMAL,NORMAL);
151 echo"\n\n";
152 ?>