<?php
-/**
- ******************************************************************************************************
- ******************************************************************************************************
- *** $HeadURL:: $ ***
- *** $Author:: $ ***
- *** $Revision:: $ ***
- *** $Date:: $ ***
- *** $Copyright:: ©2008, Profi-Concept aka Wolfgang Stelzhammer , All rights reserved. $ ***
- *** $ License:: The BSD License $ ***
- *** $ Redistribution and use in source and binary forms, with or without modification, $ ***
- *** $ are permitted provided that the following conditions are met: $ ***
- *** $ $ ***
- *** $ - Redistributions of source code must retain the above copyright notice, $ ***
- *** $ this list of conditions and the following disclaimer. $ ***
- *** $ - Redistributions in binary form must reproduce the above copyright notice, $ ***
- *** $ this list of conditions and the following disclaimer in the documentation and/or $ ***
- *** $ other materials provided with the distribution. $ ***
- *** $ - Neither the name "Profi-Concept" or "Wolfgang Stelzhammer" nor the names of its $ ***
- *** $ contributors may be used to endorse or promote products derived from this software $ ***
- *** $ without specific prior written permission. $ ***
- *** $ $ ***
- *** $ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY $ ***
- *** $ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF $ ***
- *** $ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL $ ***
- *** $ THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, $ ***
- *** $ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT $ ***
- *** $ OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) $ ***
- *** $ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, $ ***
- *** $ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS $ ***
- *** $ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. $ ***
- ******************************************************************************************************
- *** With some XHTML hacks and mcedit ("Cool Edit") improvements by Roland Haeder ***
- ******************************************************************************************************
- ******************************************************************************************************
- **/
-define('SVN_REPO_URL', "http://mxchange.org/repos/mailer/branches/0.2.1-FINAL");
-//define('SVN_REPO_URL', "file:///E:/Webscripte/MXChange/local_mirror/branches/0.2.1-FINAL");
-define('SVN_UUID', "");
-
+// @DEPRECATED
?>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
-<title>SVN-Installer --> [Mailer - Mail Exchange] v0.2.1-FINAL</title>
-<style type="text/css">
-<!--
-body {
- background-color: #EEFFEE;
- color: #000000;
- font-family: Verdana, Arial, Geneva, Helvetica, sans-serif;
- font-size: 12px;
- letter-spacing: 1px;
- scrollbar-base-color: #E9E4AE;
- scrollbar-face-color: #CDEFCD;
- scrollbar-highlight-color: #EEFFEE;
- scrollbar-shadow-color: #CDEFCD;
- scrollbar-3dlight-color: #DDDDDD;
- scrollbar-arrow-color: #000000;
- scrollbar-track-color: #CCEFCC;
- scrollbar-darkshadow-color: #999999;
- margin: 20px;
-}
-
-table {
- table-layout: auto;
- border-spacing: 0px;
- overflow: auto;
-}
-
-td {
- vertical-align: top;
-}
-
-A {
- font-style: normal;
- font-family: Verdana, Arial, Geneva, Helvetica, sans-serif;
- text-decoration: none;
-}
-
-A:link {
- color: #2e51a9;
-}
-
-A:visited {
- color: #AA0044;
-}
-
-A:active {
- color: #2e51a9;
- background-color: transparent;
-}
-
-A:hover {
- background-color: transparent;
-}
-
-input,textarea {
- color: #009900;
- background-color: #EEFFEE;
- border: 1px solid #AA0044;
- text-decoration: none;
- border-style: groove;
-}
-
-select,option {
- background-color: #EEFFEE;
- border: solid 1px #009900;
- color: #AA0044;
- text-decoration: none;
- border-style: groove;
-}
-
-ul,ol {
- margin-top: 0px;
- margin-bottom: 0px;
-}
-
-.hl {
- font-weight: 900;
-}
-
-.pos {
- color: #32cd32;
- background-color: #fffff0;
- padding: 10px;
-}
-
-.neg {
- color: #ff0000;
- background-color: #fffff0;
- padding: 10px;
-}
--->
-</style>
-
-
-</head>
-<body>
-<br />
-<h2>SVN-Installer --> [Mailer - Mail Exchange] v0.2.1-FINAL<br />
-<span style="font-size: 8pt;">Installer-Version 0.1.1<br />
-©2008, Profi-Concept aka Wolfgang Stelzhammer , All rights
-reserved.</span></h2>
-
-<span class="hl">Prüfe SVN-Version: </span>
-...
-<br />
-<br />
-<?php
-function doSetup () {
- $rev = '';
- if ((isset($_GET['revision'])) && (!empty($_GET['revision']))) {
- $rev = '-r '.$_GET['revision'];
- } // END - if
-
-
- switch ($_GET['type']) {
- case 'checkout':
- $befehl = 'svn checkout '.$rev.$_GET['svn_url'].' '.$_GET['path'];
- break;
- case 'export':
- $befehl = 'svn export --force '.$rev.$_GET['svn_url'].' '.$_GET['path'];
- break;
- } // END - switch
-
- $ausg = proc_get($befehl);
- //echo '<pre>$befehl:'.print_r($befehl, true).'</pre>';
-
- //echo '<pre>$ausg:'.print_r($ausg, true).'</pre>';
- echo '<p class="hl">Führe SVN-'.$_GET['type'].' durch ...</p>';
-
- if (!isset($_GET['svn_detail']) || $_GET['svn_detail'] != '1') $t[] = $ausg[count($ausg)-1];
- else $t = $ausg;
-
-
- ?>
-<table border="1" cellpadding="5" cellspacing="1"
- style="margin-left: 20px;">
- <tr>
- <td class="hl">SVN Ausgabe</td>
- <td class="pos" style="border: #00000 1px solid;"><?php echo implode("<br />\n",$t) ?></td>
- </tr>
-</table>
-<br />
-<br />
- <?php
-
- $owner = fileowner($_GET['path']);
- $uid = uniqid();
- mkdir($_GET['path']. $uid);
- $nowner = fileowner($_GET['path']. $uid);
- //$group = filegroup($_GET['path']);
- rmdir($_GET['path']. $uid);
-
-
- if ($owner != $nowner) {
- //echo '<pre>$owner:'.print_r($owner, true).'</pre>';
- //echo '<pre>$nowner:'.print_r($nowner, true).'</pre>';
- echo '<span class="hl">Setze Dateirechte, da Webserver-Benuzter von Ordner-Eigentüber abweicht ...</span>';
- proc_get('chmod -R 0766 '.$_GET['path']);
- echo '<span class="pos">Dateirechte auf 0766 gesetzt</span><br /><br />';
- } // END - if
-
-
- ?>
-<span class="pos">SVN-Installation erfolgreich abgeschlossen.</span>
-<br />
-<br />
-<br />
-<form action="<?php echo $_GET['mailer_url'] . "\""; ?> method="GET">
-<div style="margin-left: 20px;"><input type="submit" name="submit"
- value="Installations-Script von Mailer aufrufen" /></div>
-</form>
- <?php
- return $t;
-}
-
-function proc_get ($cmd) {
-
- $res = popen($cmd, 'r');
- $buffer = array();
- while ($res && !feof($res)) {
- $t = trim(fgets($res));
- if (!empty($t)) {
- $buffer[] = t$t;
- } // END - if
- //echo $t;
- } // END - while
- pclose($res);
- if (count($buffer) <= 0) {
- return false;
- } else {
- return $buffer;
- }
-}
-
-$ausg = proc_get('svn --version --quiet');
-
-if (!$ausg) {
- echo '<h2 style="text-align:center; padding-top: 10px; padding-bottom: 10px;" class="neg">Fehler: Es konnte kein SVN-Client gefunden werden!<br />
- Bitte installieren Sie SVN (<a href="http://http://subversion.tigris.org/">http://subversion.tigris.org/</a>).</h2>';
- exit;
-} // END - if
-
-echo '<span class="hl">Installierte SVN Version: </span><span class="pos">'.$ausg[0].'</span><br />';
-//echo '<pre>$ausg:'.print_r($ausg, true).'</pre>';
-if (!isset($_GET['step'])) {
- $step = 1;
-} else {
- $step = $_GET['step'];
-}
-
-switch ($step) {
- case '1':
- ?>
-<br />
-<form action="" method="GET">
-<div style="margin-left: 20px;"><input type="hidden" name="step"
- value="2" />
-<p class="hl">Installations-Parameter</p>
-<table border="1" cellpadding="5" cellspacing="1">
- <tr>
- <td class="hl" nowrap style="border-bottom: 0px solid;">Setup-Art:</td>
- <td colspan="2"><select name="type">
- <option value="checkout">checkout (Standard)</option>
- <option value="export">export</option>
- </select></td>
- </tr>
- <tr>
- <td style="border-top: 0px solid; border-bottom: 0px solid;"></td>
- <td class="hl" nowrap>Chekout:<br />
- (Standard)</td>
- <td width="400">Bei dieser Option wird ein Working-Direktory erstellt.
- Hiermit kann ganz einfach mittels eines SVN-Updates das Script
- geupdated werden.</td>
- </tr>
- <tr>
- <td style="border-top: 0px solid;"></td>
- <td class="hl" nowrap>Export:</td>
- <td width="400">Hier wird nur ein "einfacher" Export
- ausgeführt und keine Versions-Information gespeichert.</td>
- </tr>
- <tr>
- <td class="hl" nowrap style="border-bottom: 0px solid;">Setup-Verzeichnis:</td>
- <td colspan="2"><input size="80" maxlength="254" type="text"
- name="path"
- value="<?php echo str_replace("\\", '/', dirname(__FILE__)) . "/\""; ?> /></td>
-</tr>
-<tr>
- <td style="border-top: 0px solid;"></td>
- <td class="hl" nowrap>Absoluter Pfad:</td>
- <td width="400">Standardmäßig ist hier der Pfad des Scriptes angegeben. Ein nicht vorhandenes Verzeichniss wird erstellt.</td>
-</tr>
-<tr>
- <td class="hl" nowrap style="border-bottom: 0px solid;">Mailer-URL:</td>
- <td colspan="2"><input size="80" maxlength="254" type="text" name="mailer_url" value="<?php echo 'http://' . getenv('SERVER_NAME') . str_replace("\\", '/', dirname($_SERVER['PHP_SELF']))."/\""; ?> /></td>
-</tr>
-<tr>
- <td style="border-top: 0px solid;"></td>
- <td class="hl" nowrap>Mailer-URL:</td>
- <td width="400">Dies ist die URL von wo aus der Mailer aufgerufen werden kann. Standardmäßig ist hier die URL des Scriptes angegeben.</td>
-</tr>
-<tr>
- <td class="hl" nowrap style="border-bottom: 0px solid;">SVN-Repository:</td>
- <td colspan="2"><input size="80" maxlength="254" type="text" name="svn_url" value="<?php echo constant('SVN_REPO_URL') . "\""; ?> /></td>
-</tr>
-<tr>
- <td style="border-top: 0px solid;"></td>
- <td class="hl" nowrap>SVN-Server-URL:</td>
- <td width="400">URL zum SVN-Server von [Mailer - Mail Exchange] v0.2.1-FINAL. Standard-URL ist hier <span class="hl"><?php echo constant('SVN_REPO_URL'); ?></span>. Bitte nur ändern, wenn Sie einen lokalen SVN-Mirror erstellt haben oder eine andere Version von Mailer-Project installieren möchten.</td>
-</tr>
-<tr>
- <td class="hl" nowrap style="border-bottom: 0px solid;">Optionen:</td>
- <td colspan="2" class="hl">
- Head-Revision: <input type="checkbox" name="head_revision" value="1" checked="checked"><br />
- SVN Detail-Ausgabe: <input type="checkbox" name="svn_detail" value="1">
-</tr>
-<tr>
- <td style="border-top: 0px solid;border-bottom: 0px solid;"></td>
- <td class="hl" nowrap>Head-Revision:</td>
- <td width="400">Wird diese Option gewählt, so wird automatisch die HEAD-Revision verwendet. Sonst kann in einem weiteren Schritt eine entsprechende Revision ausgewählt werden.</td>
-</tr>
-<tr>
- <td style="border-top: 0px solid;"></td>
- <td class="hl" nowrap>SVN Detail-Ausgabe:</td>
- <td width="400">Aktiviert zeigt es sämtliche SVN-Detail-Ausgaben an. Sollte nur zum Debuggen aktiviert werden.</td>
-</tr>
-
-</table>
-<br />
-<input type="submit" name="submit" value="Setup fortsetzen">
-
-</div>
-</form>
-<?php
- break;
- case '2':
- if (!preg_match('@(.*)/$@',$_GET['path'],$match)) {
- $_GET['path'] = $_GET['path'].'/';
- //echo '<pre>$_GET:'.print_r($_GET, true).'</pre>';
- } // END - if
- //echo '<pre>$_GET:'.print_r($_GET, true).'</pre>';
-?>
-<br />
-<span class="hl">Prüfe Setup-Verzeichniss <?php echo $_GET['path']; ?> ...<br /><br />
-<?php
-$t = uniqid();
-$erg = @mkdir($_GET['path']. $t.'/');
-if (file_exists($_GET['path']) && $erg) {
- echo $_GET['path'].'</span><span class="pos">vorhanden und beschreibar</span>';
- rmdir($_GET['path']. $t.'/');
-} elseif(file_exists($_GET['path']) && !$erg) {
- echo '<span class="hl">'.$_GET['path'].' </span>';
- echo '<span class="neg">Fehler</span><br /><br />';
- echo '<h2 style="text-align:center; padding-top: 10px; padding-bottom: 10px;" class="neg">Fehler: Das Verzeichniss<br />'.$_GET['path'].'<br />hat Nicht genügende Schreibrechte.';
- exit;
-
-} elseif (!file_exists($_GET['path'])) {
- //echo '<span class="neg">nicht vorhanden</span><br /><br />';
- $t = explode('/',$_GET['path']);
- //echo '<pre>$t:'.print_r($t, true).'</pre>';
- $dir = '';
- foreach($t as $last) {
- if (!empty($last)) {
- $tdir = $dir;
- $dir .= $last.'/';
-
- //echo '<pre>fileperms($tdir):'.print_r(fileperms($tdir), true).'</pre>';
- //echo '<pre>fileperms($dir):'.print_r(fileperms($dir), true).'</pre>';
-
-
- //echo '<pre>$dir:'.print_r($dir, true).'</pre>';
-
- if (!file_exists($dir)) {
- $erg = @mkdir($dir);
- if (!$erg) {
- echo '<span class="hl">'.$dir.' </span>';
- echo '<span class="neg">Fehler</span><br /><br />';
- echo '<h2 style="text-align:center; padding-top: 10px; padding-bottom: 10px;" class="neg">Fehler: Das Verzeichniss<br />'.$tdir.'<br />hat Nicht genügende Schreibrechte.';
- exit;
- } else {
- echo '<span class="hl">'.$dir.' </span>';
- echo '<span class="pos">erstellt</span><br /><br />';
- }
- }
- } // END - if
- } // END - foreach
-}
-echo '<p class="hl">Prüfe SVN-Server '.$_GET['svn_url']. ' ...</p>';
-echo '<span class="hl">'.$_GET['svn_url'].' </span>';
-
-$svn_server_readable = proc_get('svn info '.$_GET['svn_url'].'');
-$svn_server = proc_get('svn info --xml '.$_GET['svn_url'].'');
-
-if (!$svn_server_readable) {
- echo '<span class="neg">Fehler</span><br />';
- echo '<h2 style="text-align:center; padding-top: 10px; padding-bottom: 10px;" class="neg">Fehler: Kann den SVN-Server<br />'.$_GET['svn_url'].'<br />nicht erreichen.';
- exit;
-} // END - if
-
-$svn_ausg = implode('<br />',$svn_server_readable);
-$svn_server = implode("\n",$svn_server);
-?>
-<span class="pos">erreichbar</span><br /><br />
-<table border="1" cellpadding="5" cellspacing="1" style="margin-left: 20px;">
-<tr>
- <td class="hl">SVN Informationen</td>
- <td class="pos" style="border: #00000 1px solid;"><?php echo $svn_ausg ?></td>
-</tr>
-</table>
-<?php
-if (!isset($_GET['head_revision']) || $_GET['head_revision'] != '1') {
-?>
-<br />
-<form action="" method="GET">
-<div style="margin-left: 20px;">
-<input type="hidden" name="step" value="3" />
-<input type="hidden" name="past" value="<?php echo urlencode(serialize($_GET))."\""; ?> />
-<table border="1" cellpadding="5" cellspacing="1">
-<tr>
- <td class="hl" nowrap style="border-bottom: 0px solid;">Revision:</td>
- <td colspan="2"><input size="10" maxlength="10" type="text" name="revision" value="<?php
-//echo '<pre>$svn_server:<textarea cols="80" rows="20" name="fgsgfsdg">'.print_r($svn_server, true).'</textarea></pre>';
-
-
-$xml = new SimpleXMLElement($svn_server);
-//echo '<pre>$xml:'.print_r($xml, true).'</pre>';
-$t = $xml->entry[0]->commit[0]['revision'];
-echo $t."\"";
-?>></td>
-
-</tr>
-<tr>
- <td style="border-top: 0px solid;"></td>
- <td class="hl" nowrap>Revision:</td>
- <td width="400">Revision von [Mailer-Project - Mail Exchange] v0.2.1-FINAL die installiert werden soll. Nach möglichkeit immer die HEAD-Revison benutzen um alle Updates bereits includiert zu erhalten.</td>
-</tr>
-</table>
-<br />
-<input type="submit" name="submit" value="Setup fortsetzen">
-
-</div>
-</form>
-<?php
-} else {
- $ausg = doSetup();
-}
- break;
-
- case '3':
- $t = unserialize(urldecode($_GET['past']));
- unset($_GET['past']);
- $_GET = array_merge($t, $_GET);
- echo '<p class="hl">Prüfe SVN-Server '.$_GET['svn_url']. ' ...</p>';
- echo '<span class="hl">'.$_GET['svn_url'].' </span>';
-
- $svn_server_readable = proc_get('svn info '.$_GET['svn_url'].'');
- $svn_server = proc_get('svn info --xml '.$_GET['svn_url'].'');
- if (!$svn_server_readable) {
- echo '<span class="neg">Fehler</span><br />';
- echo '<h2 style="text-align:center; padding-top: 10px; padding-bottom: 10px;" class="neg">Fehler: Kann den SVN-Server<br />'.$_GET['svn_url'].'<br />nicht erreichen.';
- exit;
- } // END - if
- $svn_ausg = implode('<br />',$svn_server_readable);
- $svn_server = implode("\n",$svn_server);
-?>
-<span class="pos">erreichbar</span><br /><br />
-<table border="1" cellpadding="5" cellspacing="1" style="margin-left: 20px;">
-<tr>
- <td class="hl">SVN Informationen</td>
- <td class="pos" style="border: #00000 1px solid;"><?php echo $svn_ausg ?></td>
-</tr>
-</table>
-<?php
- $ausg = doSetup();
- break;
-} // END - switch
-?>
-</body>
-</html>