add translations
[Pman.Core] / UpdateDatabase.php
1 <?php
2
3
4
5 require_once 'Pman.php';
6 class Pman_Core_UpdateDatabase extends Pman
7 {
8     
9     static $cli_desc = "Update SQL - Beta";
10  
11  
12   
13     var $cli = false;
14     function getAuth() {
15         
16         
17         $ff = HTML_FlexyFramework::get();
18         if (!empty($ff->cli)) {
19             $this->cli = true;
20             return true;
21         }
22         
23         parent::getAuth(); // load company!
24         $au = $this->getAuthUser();
25         if (!$au || $au->company()->comptype != 'OWNER') {
26             $this->jerr("Not authenticated", array('authFailure' => true));
27         }
28         $this->authUser = $au;
29         return true;
30     }
31      
32     function get()
33     {
34         $this->importSQL();
35         die("done");
36     }
37      /**
38      * imports SQL files from all DataObjects directories....
39      * 
40      * except any matching /migrate/
41      */
42     function importSQL()
43     {
44         
45         $ff = HTML_Flexyframework::get();
46         
47         $url = parse_url($ff->DB_DataObject['database']);
48         // hide stuff for web..
49         
50         require_once 'System.php';
51         $cat = System::which('cat');
52         $mysql = System::which('mysql');
53         
54         $ar = $this->modulesList();
55         
56            
57             $mysql_cmd = $mysql .
58                 ' -h ' . $url['host'] .
59                 ' -u' . escapeshellarg($url['user']) .
60                 (!empty($url['pass']) ? ' -p' . escapeshellarg($url['pass'])  :  '') .
61                 ' ' . basename($url['path']);
62         echo $mysql_cmd . "\n" ;
63         
64         
65         
66         
67         foreach($ar as $m) {
68             
69             $fd = $this->rootDir. "/Pman/$m/DataObjects";
70             
71             foreach(glob($fd.'/*.sql') as $fn) {
72                 
73                  
74                 if (preg_match('/migrate/i', basename($fn))) { // skip migration scripts at present..
75                     continue;
76                 }
77                 
78                 $cmd = "$mysql_cmd -f < " . escapeshellarg($fn) ;
79                 
80                 echo $cmd. ($this->cli ? "\n" : "<BR>\n");
81                 
82                 passthru($cmd);
83             
84                 
85             }
86         }
87         
88         
89         
90     }
91     
92 }