Subversion-Projekte lars-tiefland.laravel_shop

Revision

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

Revision 1200 Revision 1226
Zeile 1... Zeile 1...
1
<?php
1
<?php
Zeile 2... Zeile 2...
2
 
2
 
Zeile -... Zeile 3...
-
 
3
    namespace App\Http\Controllers;
3
    namespace App\Http\Controllers;
4
 
4
 
5
    use Illuminate\Foundation\Http\FormRequest;
Zeile 5... Zeile 6...
5
    use Illuminate\Support\Facades\DB;
6
    use Illuminate\Support\Facades\DB;
6
    use Illuminate\View\View;
7
    use Illuminate\View\View;
Zeile 12... Zeile 13...
12
        public function create(): View
13
        public function create(): View
13
        {
14
        {
14
            return view( "admin/toolbox/index" );
15
            return view( "admin/toolbox/index" );
15
        }
16
        }
Zeile -... Zeile 17...
-
 
17
 
-
 
18
        public function updateShopVersion( FormRequest $request ): void
-
 
19
        {
-
 
20
 
-
 
21
            $version = $_GET["version"];
-
 
22
            $shop = $_GET["shop"];
-
 
23
            $verz = $_GET["verz"];
-
 
24
            $server = $_GET["server"];
-
 
25
            $srcDir = "/usr/share/php7/webanOS/" . $version;
-
 
26
            //trigger_error( $srcDir );
-
 
27
            $dstDir = "/var/www/vhosts/" . $shop . "/" . $verz;
-
 
28
            $cmd1 = "sudo ln -sfn " . $srcDir . " " . $dstDir . "/source";
-
 
29
            $cmd2 = "sudo ln -s " . $dstDir . "/source/*.php " . $dstDir;
-
 
30
            $cmd3 = "sudo ln -s " . $dstDir . "/source/preisagentur/*.php " . $dstDir . "/preisagentur";
-
 
31
 
-
 
32
            if ( $_SERVER["HTTP_HOST"] == "faltradxxs.lars-tiefland.de" )
-
 
33
            {
-
 
34
                //if ( $site == $site_full )
-
 
35
                {
-
 
36
                    $dom = "webanos." . $server;
-
 
37
                    $sql = "SELECT
-
 
38
                            dok_domain
-
 
39
                        FROM
-
 
40
                            webs
-
 
41
                        WHERE
-
 
42
                            domain='" . $server . "'
-
 
43
                    ";
-
 
44
                    $res = $GLOBALS["localDB"]->query( $sql );
-
 
45
                    if ( !$GLOBALS["localDB"]->error )
-
 
46
                    {
-
 
47
                        $row = $res->fetch_assoc();
-
 
48
                        if ( $row["dok_domain"] )
-
 
49
                        {
-
 
50
                            $dom = $row["dok_domain"];
-
 
51
                        }
-
 
52
                    }
-
 
53
                    $cmd1 = "ssh -p910 www-data@" . $dom . " " . $cmd1;
-
 
54
                    $cmd2 = "ssh -p910 www-data@" . $dom . " " . $cmd2;
-
 
55
                    $cmd3 = "ssh -p910 www-data@" . $dom . " " . $cmd3;
-
 
56
                }
-
 
57
            }
-
 
58
            exec( $cmd1, $out1, $ret1 );
-
 
59
            if ( $ret1 == 0 )
-
 
60
            {
-
 
61
                exec( $cmd2, $out2, $ret2 );
-
 
62
                exec( $cmd3, $out3, $ret3 );
-
 
63
                echo "Shop-Version wurde erfolgreich umgestellt!";
-
 
64
 
-
 
65
 
-
 
66
                if ( $_SERVER["HTTP_HOST"] == "faltradxxs.lars-tiefland.de" )
-
 
67
                {
-
 
68
                    $path = array(
-
 
69
                        "/var/www/vhosts/" . $shop . "/dev/cache/default",
-
 
70
                        "/var/www/vhosts/" . $shop . "/dev/cache/asset_compile",
-
 
71
                        "/var/www/vhosts/" . $shop . "/dev/templates_c/default",
-
 
72
                        "/var/www/vhosts/" . $shop . "/dev/templates_c/module",
-
 
73
                        "/var/www/vhosts/" . $shop . "/dev/templates_c/reiter",
-
 
74
                    );
-
 
75
 
-
 
76
                    foreach ( $path as $p )
-
 
77
                    {
-
 
78
                        $files = glob( $p . '/*' );
-
 
79
                        //print_r($files);
-
 
80
                        if ( !$files )
-
 
81
                        {
-
 
82
                            continue;
-
 
83
                        }
-
 
84
                        foreach ( $files as $file )
-
 
85
                        {
-
 
86
                            if ( is_file( $file ) )
-
 
87
                            {
-
 
88
                                unlink( $file );
-
 
89
                            }
-
 
90
                        }
-
 
91
                    }
-
 
92
                }
-
 
93
            }
-
 
94
        }
16
 
95
 
17
        public function changeShopVersion(): View
96
        public function changeShopVersion(): View
18
        {
97
        {
19
            $site = env( 'shop' );
98
            $site = env( 'shop' );
20
            $site_full = "";
99
            $site_full = "";
Zeile 54... Zeile 133...
54
                $rows = DB::connection( 'cms' )->select( $sql );
133
                $rows = DB::connection( 'cms' )->select( $sql );
55
                foreach ( $rows as $row )
134
                foreach ( $rows as $row )
56
                {
135
                {
57
                    $dokDomains[] = $row->dok_domain;
136
                    $dokDomains[] = $row->dok_domain;
58
                    $servers[] = $row->domain;
137
                    $servers[] = $row->domain;
59
                    $sshPorts[ $row->domain ] = $row->ssh_port;
138
                    $sshPorts[$row->domain] = $row->ssh_port;
60
                }
139
                }
61
                foreach ( $servers as $i => $server )
140
                foreach ( $servers as $i => $server )
62
                {
141
                {
63
                    //trigger_error( $server );
142
                    //trigger_error( $server );
Zeile 64... Zeile 143...
64
 
143
 
65
                    unset( $out );
144
                    unset( $out );
66
                    $port = $sshPorts[ $server ];
145
                    $port = $sshPorts[$server];
67
                    $dom = "webanos." . $server;
146
                    $dom = "webanos." . $server;
68
                    if ( $dokDomains[ $i ] )
147
                    if ( $dokDomains[$i] )
69
                    {
148
                    {
70
                        $dom = $dokDomains[ $i ];
149
                        $dom = $dokDomains[$i];
71
                    }
150
                    }
72
                    if ( $port > 22 )
151
                    if ( $port > 22 )
73
                    {
152
                    {
74
                        $dom .= " -p" . $port;
153
                        $dom .= " -p" . $port;
Zeile 88... Zeile 167...
88
                    //trigger_error( var_export( $ret, true ) );
167
                    //trigger_error( var_export( $ret, true ) );
89
                    foreach ( $out as $id => $line )
168
                    foreach ( $out as $id => $line )
90
                    {
169
                    {
91
                        $ex = explode( "/", $line );
170
                        $ex = explode( "/", $line );
92
                        $ex2 = $ex;
171
                        $ex2 = $ex;
93
                        unset( $ex2[ count( $ex ) - 1 ] );
172
                        unset( $ex2[count( $ex ) - 1] );
94
                        $sLine = implode( "/", $ex2 );
173
                        $sLine = implode( "/", $ex2 );
95
                        $cmd = "ssh www-data@" . $dom . " file --mime-type " . $sLine . "|grep symlink -v";
174
                        $cmd = "ssh www-data@" . $dom . " file --mime-type " . $sLine . "|grep symlink -v";
96
                        if ( $site != $site_full )
175
                        if ( $site != $site_full )
97
                        {
176
                        {
98
                            //$cmd = "file --mime-type " . $sLine . "|grep symlink -v";
177
                            //$cmd = "file --mime-type " . $sLine . "|grep symlink -v";
Zeile 114... Zeile 193...
114
                        $link = $out2[0];
193
                        $link = $out2[0];
115
                        $version = trim( $link, "/" );
194
                        $version = trim( $link, "/" );
116
                        $ex = explode( "/", $version );
195
                        $ex = explode( "/", $version );
117
                        //trigger_error( count( $ex ) );
196
                        //trigger_error( count( $ex ) );
118
                        //trigger_error( $link );
197
                        //trigger_error( $link );
119
                        $shops[ $name ][ $dir ] = $this->getShopVer( $link, $ex, $server );
198
                        $shops[$name][$dir] = $this->getShopVer( $link, $ex, $server );
120
                        unset( $out2 );
199
                        unset( $out2 );
121
                    }
200
                    }
122
                }
201
                }
123
            }
202
            }
124
            else
203
            else
Zeile 128... Zeile 207...
128
                sort( $out );
207
                sort( $out );
129
                foreach ( $out as $id => $line )
208
                foreach ( $out as $id => $line )
130
                {
209
                {
131
                    $ex = explode( "/", $line );
210
                    $ex = explode( "/", $line );
132
                    $ex2 = $ex;
211
                    $ex2 = $ex;
133
                    unset( $ex2[ count( $ex ) - 1 ] );
212
                    unset( $ex2[count( $ex ) - 1] );
134
                    $sLine = implode( "/", $ex2 );
213
                    $sLine = implode( "/", $ex2 );
135
                    if ( @is_link( $sLine ) && $site == $site_full )
214
                    if ( @is_link( $sLine ) && $site == $site_full )
136
                    {
215
                    {
137
                        continue;
216
                        continue;
138
                    }
217
                    }
Zeile 141... Zeile 220...
141
                    exec( "readlink " . $line, $ret );
220
                    exec( "readlink " . $line, $ret );
142
                    $link = $ret[0];
221
                    $link = $ret[0];
143
                    unset( $ret );
222
                    unset( $ret );
144
                    $version = trim( $link, "/" );
223
                    $version = trim( $link, "/" );
145
                    $ex = explode( "/", $version );
224
                    $ex = explode( "/", $version );
146
                    $shops[ $name ][ $dir ] = $this->getShopVer( $link, $ex );
225
                    $shops[$name][$dir] = $this->getShopVer( $link, $ex );
147
                }
226
                }
148
            }
227
            }
149
            ksort( $shops );
228
            ksort( $shops );
150
            \View::share( "shops", $shops );
229
            \View::share( "shops", $shops );
151
            \View::share( "file", "common/changeShopVersion.tpl" );
230
            \View::share( "file", "common/changeShopVersion.tpl" );
Zeile 175... Zeile 254...
175
                {
254
                {
176
                    $zeit = str_replace( "-", ":", $zeit );
255
                    $zeit = str_replace( "-", ":", $zeit );
177
                }
256
                }
178
                $datStr = $datum . " " . $zeit;
257
                $datStr = $datum . " " . $zeit;
179
                $name = strftime( "%x %H:%M", strtotime( $datStr ) );
258
                $name = strftime( "%x %H:%M", strtotime( $datStr ) );
180
                $versions[ "tags/" . $version ] = $name;
259
                $versions["tags/" . $version] = $name;
181
                $xmlFile = $this->xmlDir . $version . ".xml";
260
                $xmlFile = $this->xmlDir . $version . ".xml";
182
                if ( !file_exists( $xmlFile ) )
261
                if ( !file_exists( $xmlFile ) )
183
                {
262
                {
184
                    $cmd = "svn log --xml --stop-on-copy " . $path . "tags/" . $version . " > " . $xmlFile;
263
                    $cmd = "svn log --xml --stop-on-copy " . $path . "tags/" . $version . " > " . $xmlFile;
185
                    exec( $cmd, $svnOut, $ret );
264
                    exec( $cmd, $svnOut, $ret );
Zeile 194... Zeile 273...
194
            return $versions;
273
            return $versions;
195
        }
274
        }
Zeile 196... Zeile 275...
196
 
275
 
197
        private function getShopVer( $link, $ex, $server = "localhost" ): array
276
        private function getShopVer( $link, $ex, $server = "localhost" ): array
198
        {
277
        {
199
            if ( $ex[ count( $ex ) - 1 ] == "trunk" )
278
            if ( $ex[count( $ex ) - 1] == "trunk" )
200
            {
279
            {
201
                $version = "trunk";
280
                $version = "trunk";
202
                $xmlFile = $this->xmlDir . "trunk.xml";
281
                $xmlFile = $this->xmlDir . "trunk.xml";
203
            }
282
            }