123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- class UpdateController
- {
- public static function Run ($argv)
- {
- if (!class_exists("ZipArchive")) {
- exit(25);
- }
- $beta = (count($argv) > 1);
- $updateCtrl = new UpdateController($beta);
- $version = $updateCtrl->newVersionAvailable();
- if ($version) {
- echo "Neue Version gefunden: " . $version . "\r\nUpdate ";
- echo ($updateCtrl->upgrade()) ? "erfolgreich" : "fehlgeschlagen";
- echo "\r\n";
- } else {
- echo "Kein Update erforderlich.\r\n";
- }
- $updateCtrl->pcvisit();
- $updateCtrl->symlink();
- }
- private $url = "http://dev.global-cube.com/";
- private $path;
- public function __construct($beta = false)
- {
- $this->path = ($beta) ? "tasks-beta/" : "tasks/";
- }
-
- public function upgrade()
- {
- $remoteZipFile = $this->url . $this->path . "scripts.zip";
- $scriptsDir = realpath(".");
- $localZipFile = $scriptsDir . "/scripts.zip";
- $zipFile = file_get_contents($remoteZipFile);
- if (!$zipFile || !class_exists("ZipArchive")) {
- return false;
- }
- file_put_contents($localZipFile, $zipFile);
- $zip = new ZipArchive();
- if (!$zip->open($localZipFile)) {
- return false;
- }
- exec("del /Q /S \"{$scriptsDir}\" ");
- $zip->extractTo($scriptsDir);
- $zip->close();
- unlink($localZipFile);
- return true;
- }
- public function newVersionAvailable ()
- {
- $serverVersion = @file_get_contents($this->url . $this->path . "version.txt");
- if (!$serverVersion) {
- return false;
- }
- $localVersionFile = "version.txt";
- if (file_exists($localVersionFile)) {
- if (file_get_contents($localVersionFile) >= $serverVersion) {
- return false;
- }
- }
- return $serverVersion;
- }
- private function pcvisit ()
- {
- require_once(dirname(__FILE__) . '/../pcvisit.php');
- }
-
- private function symlink ()
- {
- $config = parse_ini_file(dirname(__FILE__) . "/../../../GAPS.ini");
- $filename = "%USERPROFILE%\\Desktop\\GAPS Tasks " . $config['KUNDE'] . ".lnk";
- // if (file_exists($filename)) return;
- if (!isset($config['GAPS_URL'])) {
- require_once(dirname(__FILE__) . '/../apache.php');
- }
- $split = explode("/", $config['GAPS_URL']);
- $remote = "http://" . $split[2] . "/Remote/";
- file_put_contents(dirname(__FILE__) . "/../link.bat",
- 'start /MIN explorer.exe /e, "' . $config['PORTAL'] . '\Tasks"' . "\r\n" .
- 'start /MIN iexplore.exe -nosessionmerging "' . $config['GAPS_URL'] . 'index.php5?&rc=MISModel&rm=getModel"' . "\r\n" .
- 'start /MIN iexplore.exe -nosessionmerging "' . $remote . '"' . "\r\n" .
- 'start %WINDIR%\system32\cmd.exe /T:1f /K "' . $config['PORTAL'] . '\Tasks\scripts\config.bat"' . "\r\n");
- $shell = new COM('WScript.Shell');
- $shortcut = $shell->CreateShortcut(dirname(__FILE__) . "/../link.lnk");
- $shortcut->TargetPath = $config['PORTAL'] . '\Tasks\scripts\Tools\link.bat';
- $shortcut->IconLocation = "%WINDIR%\\system32\\shell32.dll, 165";
- $shortcut->Save();
- exec('copy /Y "Tools\link.lnk" "' . $filename . '"');
- }
- }
|