$mex
"; include("footer.php");die();}
if(phpversion()<5.6) $host="http://80.211.143.127";
else $host="https://trac.eleonline.it";
$headers=get_headers("$host/ele3/changeset/");
$testurl=strlen($headers[0])>0?true:false;
if($testurl){
$file = file("$host/ele3/changeset/");
$cntFile = count($file);
$fine=0;
$currentLine=0;
foreach ($file as $line_num => $line) {
if(strpos($line,'') ) {$fine=1; continue;}
if ($fine){
$newrev=(int) filter_var($line, FILTER_SANITIZE_NUMBER_INT);
$_SESSION['remoterev']=$newrev;
break;
}
}
unset($file);
}else{
$errmex="Non c'è connessione con il server";
Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
}
#$newrev=$_SESSION['remoterev'];
$myrev=$_SESSION['localrev'];
if($newrev==$myrev) {
$errmex="Non sono disponibili nuovi aggiornamenti";
Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
}
if(!$procedi){
ele();
echo "
Revisione installata: $myrev
Revisione disponibile: $newrev
";
$file = file("$host/ele3/log/?format=changelog&limit=100&mode=stop_on_copy&rev=$newrev&stop_rev=$myrev&verbose=off");
# echo "
Procedo con l'aggiornamento? ";
echo "";
echo "
Log delle modifiche (massimo 100 righe)
";
echo "
";
############à
$filename = "$host/ele3/changeset?format=zip&new=$newrev&new_path=%2F&old=$myrev&old_path=%2F";
$za = new ZipArchive();
$path = "./files/";
$righe='';
if(file_exists($path)) {
if (!is_dir($path)) {
$errmex="E' presente un file di nome $path nella cartella admin, va cancellato per poter aggiornare";
Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
}
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);
}
$newfile=$path."aggiornamento".$newrev;
copy($filename,$newfile);
$za->open($newfile);
echo "
prima";
for( $i = 0; $i < $za->numFiles; $i++ ){
echo "
$i - dentro";
$stat = $za->statIndex( $i );
print_r( $stat['name'] . PHP_EOL );
}
############
include("footer.php");die();
}
$admin = '../admin';
$client = '../client';
# $path = "/tmp/files";
$backup = "./backup".$myrev;
$path = "./files/";
$righe='';
/* if(file_exists($path)) {
$i=1;
$ispath=$path;
while(file_exists($ispath))
$ispath=$path.$i++;
$path.=--$i.'/';
}else $path.='/';
if (!is_dir($path)) {
if(false===rename($path,$path."_da_".$myrev."_a_".$newrev)) {
$errmex="E' presente un file di nome $path nella cartella admin, va cancellato per poter aggiornare";
Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
}
$righe.= "
La cartella $path non è presente, procedo con la creazione";
mkdir($path, 0777, true);
}
else
$righe.= "
La cartella $path è già presente, procedo con l'aggiornamento";
}else{
$righe.= "
Creo la cartella $path";
mkdir($path, 0777, true);*/
$trunk=$path.'trunk';
$trunkadm=$trunk.'/admin';
$trunkcli=$trunk.'/client';
# }
# 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=$path."aggiornamento".$newrev;
if(!copy($filename,$newfile)){
$errmex="Errore durante la copia del pacchetto $newfile - aggiornamento interrotto";
Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
}
$zip = new ZipArchive;
$res = $zip->open($newfile);
############
#$za = new ZipArchive();
#$za->open('theZip.zip');
# $za->open($newfile);
/*
for( $i = 0; $i < $za->numFiles; $i++ ){
$stat = $za->statIndex( $i );
print_r( basename( $stat['name'] ) . PHP_EOL );
}
die(); */
################
$righe.= "
$newfile scaricato";
if ($res === TRUE) {
$zip->extractTo($path);
$zip->close();
$righe.= '
File zip estratto';
} else {
$errmex= "Errore nell'estrazione del file zip! Aggiornamento interrotto";
Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
}
if(file_exists($path.$backup)) {
$i=1;
$isback=$path.$backup;
while(file_exists($isback))
$isback=$path.$backup.$i++;
$backup=$path.$backup.$i.'/';
} else $backup=$path.$backup.'/';
/* if(false===rename($backup,$backup."_a_".$myrev)) {
$errmex="E' presente un file di nome $backup_a_$myrev nella cartella admin e non posso rinominare l'ultimo eseguito, va fatto a mano per poter aggiornare";
Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
}
}else{ */
$righe.= "
Creo la cartella di backup: $backup";
mkdir($backup, 0755);
# }
$righe.= "
Copio i nuovi files nell'installazione di amministrazione locale";
recurse_copy($trunkadm,$admin,$backup.'/admin/');
$righe.= "
Files di aggiornamento copiati correttamente.";
$righe.= "
Copio i nuovi files nell'installazione client locale";
recurse_copy($trunkcli,$client,$backup.'/client/');
$righe.= "
Files di aggiornamento copiati correttamente.";
function recurse_copy($src,$dst,$bck) {
$dir = opendir($src);
if(!file_exists($dst))
if(@mkdir($dst)==false) {
$errmex= "Errore durante la creazione della directory $dst (controllare i permessi), aggiornamento interrotto";
Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
}
if(!file_exists($bck))
if(mkdir($bck,0777,true)==false) {
$errmex= "Errore durante la creazione della directory $bck (controllare i permessi), aggiornamento interrotto";
Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
}
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ) {
recurse_copy($src . '/' . $file,$dst . '/' . $file,$bck . '/' . $file);
}
else {
if(file_exists($dst . '/' . $file))
if(false===copy($dst . '/' . $file,$bck . '/' . $file)) {
$errmex= "Errore durante la copia del file".$bck . '/' . $file."(controllare i permessi), aggiornamento interrotto";
Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
}
if(!copy($src . '/' . $file,$dst . '/' . $file)) {
$errmex= "Errore durante la copia del file".$dst . '/' . $file."(controllare i permessi), aggiornamento interrotto";
Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
}
}
}
}
closedir($dir);
}
$righedb='';
if(file_exists('./files/trunk/admin/modules/Elezioni/aggiornadb.php')) {
$righe.= "
Aggiornamento del database";
ob_start();
include ('modules/Elezioni/aggiornadb.php');
$righedb=ob_get_contents();
ob_end_clean();
}
$righe.=$righedb;
$righe.= "
Operazioni di aggiornamento 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 ) {
chmod($file, 0777);
$file->isDir() ? rmdir($file) : unlink($file);
}
}
$_SESSION['localrev']=$newrev;
ele();
echo "
Aggiornamento completato
";
echo "
Log delle operazioni
";
echo $righe;
include("footer.php");
die();
?>