$line) {
if(strpos($line,'
') ) {$fine=1; continue;}
if ($fine){
$newrev=(int) filter_var($line, FILTER_SANITIZE_NUMBER_INT);
$righe.= "Ultima revisione: " .$newrev." \n"; break;
}
}
unset($file);
include('./versione.php');
$myrev=intval(substr($versione,-4,4));
$righe.= "
Revisione installata: ".$myrev;
if($newrev==$myrev) die( "
---------- Non sono disponibili nuovi aggiornamenti ---------");
#else{
# define('_PATH', dirname(__FILE__));
$file = '../admin';
$client = '../client';
# $dest_path = './admin-bak';
$trunk='./files/trunk';
$trunkadm='./files/trunk/admin';
$trunkcli='./files/trunk/client';
$path = "./files/";
if(file_exists($path))
if (!is_dir($path)) { die("
E' presente un file di nome $path nella cartella admin, va cancellato per poter aggiornare");}
else $righe.= "
La cartella $path è già presente, procedo con l'aggiornamento";
else{
$righe.= "
La cartella $path non è presente, procedo con la creazione";
mkdir($path, 0777, true);
}
# if(!file_exists($trunk)) if (false === mkdir($trunk)) { die("Impossibile creare la cartella trunk, il programma viene interrotto");}
# if(!copy($file,$trunkadm)){ $righe.= "
Errore durante la copia del pacchetto di aggiornamento
";}
// Nome del file zip : https://trac.eleonline.it/ele3/changeset?format=zip&new=377&new_path=%2F&old=360&old_path=%2F
# https://trac.eleonline.it/ele3/browser/trunk?format=zip&rev=377
$filename = "$host/ele3/changeset?format=zip&new=$newrev&new_path=%2F&old=$myrev&old_path=%2F";
$newfile="./files/aggiornamento".$newrev;
if(!copy($filename,$newfile)){ die( "
Errore durante la copia del pacchetto - aggiornamento interrotto
");}
$zip = new ZipArchive;
$res = $zip->open($newfile);
$righe.= "
$newfile scaricato";
if ($res === TRUE) {
$zip->extractTo($path);
$zip->close();
$righe.= '
File zip estratto';
} else {
die( '
Errore nell\'estrazione del file zip! Aggiornamento interrotto');
}
#}
$righe.= "
Copio i nuovi files nell'installazione di amministrazione locale";
recurse_copy($trunkadm,$file);
$righe.= "
Files di aggiornamento copiati correttamente.";
$righe.= "
Copio i nuovi files nell'installazione client locale";
recurse_copy($trunkcli,$client);
$righe.= "
Files di aggiornamento copiati correttamente.";
function recurse_copy($src,$dst) {
$dir = opendir($src);
if(!file_exists($dst)) @mkdir($dst);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ) {
recurse_copy($src . '/' . $file,$dst . '/' . $file);
}
else {
if(!copy($src . '/' . $file,$dst . '/' . $file)) die("
Errore durante la copia del file".$dst . '/' . $file.", aggiornamento interrotto");
}
}
}
closedir($dir);
}
echo "
------------------Aggiornamento completato controllare il log e poi tornare al programma-----------------------
";
echo "
<------------- Torna al programma -------------->
";
$righedb='';
if(file_exists('./files/trunk/admin/aggiornadb.php')) {
$righe.= "
Aggiornamento del database";
ob_start();
include ('./aggiornadb.php');
$righedb=ob_get_contents();
ob_end_clean();
}
$righe.=$righedb;
$righe.= "
Pulisco la cartella temporanea. Operazioni concluse.";
$dir = "./files/";
if(file_exists($dir)){
$di = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS);
$ri = new RecursiveIteratorIterator($di, RecursiveIteratorIterator::CHILD_FIRST);
foreach ( $ri as $file ) {
$file->isDir() ? rmdir($file) : unlink($file);
}
}
echo $righe;die();
?>