Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 1122 | Revision 1159 | Zur aktuellen Revision | Ganze Datei anzeigen | Leerzeichen ignorieren | Details | Blame | Letzte Änderung | Log anzeigen | RSS feed

Revision 1122 Revision 1158
Zeile 9... Zeile 9...
9
            return view( "admin/toolbox/index" );
9
            return view( "admin/toolbox/index" );
10
        }
10
        }
Zeile 11... Zeile 11...
11
 
11
 
12
        public function changeShopVersion()
12
        public function changeShopVersion()
-
 
13
        {
-
 
14
            $site = env('shop');
-
 
15
            $site_full = "";
-
 
16
            $webs = array();
-
 
17
            $servers = array();
-
 
18
            set_time_limit( 0 );
-
 
19
            require_once "Config.php";
-
 
20
            $versions["php7"] = $this->getVersions( "php7" );
-
 
21
            $versions["php5"] = $this->getVersions( "php" );
-
 
22
 
-
 
23
            $GLOBALS["ui"]->assign( "versions", $versions );
-
 
24
            unset( $out );
-
 
25
 
-
 
26
            $xmlDir = "/tmp/" . $webs["domain"] . "/webanos/svn/";
-
 
27
            @mkdir( $xmlDir, 0755, true );
-
 
28
 
-
 
29
            $sshPorts = array();
-
 
30
            $dokDomains = array();
-
 
31
            if ( $site == "lars-tiefland.de" )
-
 
32
            {
-
 
33
                $sql = "SELECT
-
 
34
                        domain,
-
 
35
                        dok_domain,
-
 
36
                        ssh_port
-
 
37
                    FROM
-
 
38
                        webs w
-
 
39
                    JOIN
-
 
40
                        webs_properties wp
-
 
41
                    ON
-
 
42
                        wp.webs=w.id
-
 
43
                    WHERE
-
 
44
                        wp.properties=804
-
 
45
                    AND
-
 
46
                        domain!='weban.de'
-
 
47
                    ORDER BY
-
 
48
                        domain
-
 
49
                ";
-
 
50
                $rows = DB::connection('cms')->select( $sql );
-
 
51
                foreach($rows as $row)
-
 
52
                {
-
 
53
                    $dokDomains[] = $row["dok_domain"];
-
 
54
                    $servers[] = $row["domain"];
-
 
55
                    $sshPorts[ $row["domain"] ] = $row["ssh_port"];
-
 
56
                }
-
 
57
                foreach ( $servers as $i => $server )
-
 
58
                {
-
 
59
                    //trigger_error( $server );
-
 
60
 
-
 
61
                    unset( $out );
-
 
62
                    $port = $sshPorts[ $server ];
-
 
63
                    $dom = "webanos." . $server;
-
 
64
                    if ( $dokDomains[ $i ] )
-
 
65
                    {
-
 
66
                        $dom = $dokDomains[ $i ];
-
 
67
                    }
-
 
68
                    if ( $port > 22 && $site == $site_full )
-
 
69
                    {
-
 
70
                        $dom .= " -p" . $port;
-
 
71
                    }
-
 
72
                    $cmd = "ssh www-data@" . $dom . " sudo find -L /var/www/vhosts/" . $server . " -maxdepth 3 -name source";
-
 
73
                    if ( $site_full != $site )
-
 
74
                    {
-
 
75
                        $cmd = "find -L /var/www/vhosts/" . $server . " -maxdepth 3 -name source";
-
 
76
                    }
-
 
77
                    exec( $cmd, $out, $ret );
-
 
78
                    if ( $ret )
-
 
79
                    {
-
 
80
                        trigger_error( $dom );
-
 
81
                    }
-
 
82
                    sort( $out );
-
 
83
                    //trigger_error( var_export( $ret, true ) );
-
 
84
                    foreach ( $out as $id => $line )
-
 
85
                    {
-
 
86
                        $ex = explode( "/", $line );
-
 
87
                        $ex2 = $ex;
-
 
88
                        unset( $ex2[ count( $ex ) - 1 ] );
-
 
89
                        $sLine = implode( "/", $ex2 );
-
 
90
                        $cmd = "ssh www-data@webanos." . $server . " file --mime-type " . $sLine . "|grep symlink -v";
-
 
91
                        if ( $site != $site_full )
-
 
92
                        {
-
 
93
                            $cmd = "file --mime-type " . $sLine . "|grep symlink -v";
-
 
94
                        }
-
 
95
                        exec( $cmd, $out2, $ret2 );
-
 
96
                        unset( $out2 );
-
 
97
                        if ( $ret2 == 1 )
-
 
98
                        {
-
 
99
                            continue;
-
 
100
                        }
-
 
101
                        $name = $ex[4];
-
 
102
                        $dir = $ex[5];
-
 
103
                        $cmd2 = "ssh www-data@webanos." . $server . " readlink -n " . $line;
-
 
104
                        if ( $site_full != $site )
-
 
105
                        {
-
 
106
                            $cmd2 = "readlink -n " . $line;
-
 
107
                        }
-
 
108
                        exec( $cmd2, $out2, $ret2 );
-
 
109
                        $link = $out2[0];
-
 
110
                        $version = trim( $link, "/" );
-
 
111
                        $ex = explode( "/", $version );
-
 
112
                        trigger_error( count( $ex ) );
-
 
113
                        trigger_error( $link );
-
 
114
                        $shops[ $name ][ $dir ] = $this->getShopVer( $link, $ex, $server );
-
 
115
                        unset( $out2 );
-
 
116
                    }
-
 
117
                }
-
 
118
            }
-
 
119
            else
-
 
120
            {
-
 
121
                $cmd = "sudo find -L /var/www/vhosts/" . $site . " -maxdepth 3 -name source";
-
 
122
                exec( $cmd, $out, $ret );
-
 
123
                sort( $out );
-
 
124
                foreach ( $out as $id => $line )
-
 
125
                {
-
 
126
                    $ex = explode( "/", $line );
-
 
127
                    $ex2 = $ex;
-
 
128
                    unset( $ex2[ count( $ex ) - 1 ] );
-
 
129
                    $sLine = implode( "/", $ex2 );
-
 
130
                    if ( @is_link( $sLine ) && $site == $site_full )
-
 
131
                    {
-
 
132
                        continue;
-
 
133
                    }
-
 
134
                    $name = $ex[4];
-
 
135
                    $dir = $ex[5];
-
 
136
                    exec( "readlink " . $line, $ret );
-
 
137
                    $link = $ret[0];
-
 
138
                    unset( $ret );
-
 
139
                    $version = trim( $link, "/" );
-
 
140
                    $ex = explode( "/", $version );
-
 
141
                    $shops[ $name ][ $dir ] = $this->getShopVer( $link, $ex );
-
 
142
                }
-
 
143
            }
-
 
144
            ksort( $shops );
-
 
145
            $GLOBALS["ui"]->assign( "shops", $shops );
-
 
146
            $GLOBALS["ui"]->assign( "versions", $versions );
-
 
147
            $GLOBALS["ui"]->assign( "file", "common/changeShopVersion.tpl" );
-
 
148
            $GLOBALS["ui"]->display( "common/page.tpl" );
13
        {
149
 
14
            returnview( "admin/toolbox/changeShopVersion" );
150
            returnview( "admin/toolbox/changeShopVersion" );
-
 
151
        }
-
 
152
 
-
 
153
        private function getVersions( $phpVer ): array
-
 
154
        {
-
 
155
            global $webs, $site, $site_full;
-
 
156
            $versions = array();
-
 
157
            $path = "/usr/share/php/webanOS/";
-
 
158
            if ( $phpVer == "php7" )
-
 
159
            {
-
 
160
                $path = "/usr/share/php7/webanOS/";
-
 
161
                if ( $site != $site_full )
-
 
162
                {
-
 
163
                    $path = "/usr/share/php/php7/webanOS/";
-
 
164
                }
-
 
165
            }
-
 
166
            $cmd = "ls " . $path . "tags/";
-
 
167
            exec( $cmd, $out, $ret );
-
 
168
            $xmlDir = "/tmp/" . $webs["domain"] . "/webanos/svn/";
-
 
169
            @mkdir( $xmlDir, 0755, true );
-
 
170
            foreach ( $out as $version )
-
 
171
            {
-
 
172
                list( $datum, $zeit ) = explode( "_", $version );
-
 
173
                if ( strlen( $zeit ) == 2 )
-
 
174
                {
-
 
175
                    list( $datum, $zeit ) = explode( "-", $version );
-
 
176
                    $datum = str_replace( "_", "-", $datum );
-
 
177
                    $zeit = str_replace( "_", ":", $zeit );
-
 
178
                }
-
 
179
                else
-
 
180
                {
-
 
181
                    $zeit = str_replace( "-", ":", $zeit );
-
 
182
                }
-
 
183
                $datStr = $datum . " " . $zeit;
-
 
184
                $name = strftime( "%x %H:%M", strtotime( $datStr ) );
-
 
185
                $versions[ "tags/" . $phpVer . "_" . $version ] = $name;
-
 
186
                $xmlFile = $xmlDir . $phpVer . "_" . $version . ".xml";
-
 
187
                if ( !file_exists( $xmlFile ) )
-
 
188
                {
-
 
189
                    $cmd = "svn log --xml --stop-on-copy " . $path . "tags/" . $version . " > " . $xmlFile;
-
 
190
                    exec( $cmd, $svnOut, $ret );
-
 
191
                    unset( $svnOut );
-
 
192
                }
-
 
193
            }
-
 
194
            $versions[ $phpVer . "_trunk" ] = "trunk";
-
 
195
            $xmlFile = $xmlDir . $phpVer . "_trunk.xml";
-
 
196
            $cmd = "svn log --xml " . $path . "/trunk/ -rCOMMITTED > " . $xmlFile;
-
 
197
            exec( $cmd, $svnOut, $ret );
-
 
198
            unset( $svnOut );
-
 
199
            return $versions;
-
 
200
        }
-
 
201
 
-
 
202
        private function getShopVer( $link, $ex, $server = "localhost" ): array
-
 
203
        {
-
 
204
            global $xmlDir;
-
 
205
            $phpVer = "php";
-
 
206
            if ( stristr( $link, "php7" ) )
-
 
207
            {
-
 
208
                $phpVer = "php7";
-
 
209
            }
-
 
210
            if ( $ex[ count( $ex ) - 1 ] == "trunk" )
-
 
211
            {
-
 
212
                $version = $phpVer . "_trunk";
-
 
213
                $xmlFile = $xmlDir . $phpVer . "_trunk.xml";
-
 
214
            }
-
 
215
            else
-
 
216
            {
-
 
217
                $version = $ex[4] . "/" . $phpVer . "_" . $ex[5];
-
 
218
                $xmlFile = $xmlDir . $phpVer . "_" . $ex[5] . ".xml";
-
 
219
            }
-
 
220
            $logMessage = readSvnXmlFile( $xmlFile );
-
 
221
            return array(
-
 
222
                "version"    => $version,
-
 
223
                "server"     => $server,
-
 
224
                "logmessage" => $logMessage,
-
 
225
            );
-
 
226
        }
15
        }
227
 
16
    }
228
    }