Browse Source

Upgrade: Using Advanced > Upgrade > Source Code now automatically updates switch /scripts/ folder contents (on by default), keeping switch scripts up to date with each system upgrade. Option to opt out of auto script updates is available via a Default Setting (switch > scripts_update > boolean > false).

Nate Jones 10 years ago
parent
commit
78f9b2a415
2 changed files with 37 additions and 7 deletions
  1. 14 6
      core/upgrade/app_languages.php
  2. 23 1
      core/upgrade/index.php

+ 14 - 6
core/upgrade/app_languages.php

@@ -48,6 +48,14 @@ $text['message-upgrade_svn']['pt-br'] = "Fonte de arquivos atualizados";
 $text['message-upgrade_svn']['pl'] = "Aktualizacja plików źródłowych powiodła się";
 $text['message-upgrade_svn']['pl'] = "Aktualizacja plików źródłowych powiodła się";
 $text['message-upgrade_svn']['sv-se'] = "Källfiler Uppdaterade";
 $text['message-upgrade_svn']['sv-se'] = "Källfiler Uppdaterade";
 
 
+$text['message-upgrade_svn_scripts']['en-us'] = "Source Files and Scripts Updated";
+$text['message-upgrade_svn_scripts']['es-cl'] = "Fuente archivos actualizados";
+$text['message-upgrade_svn_scripts']['pt-pt'] = "Fonte arquivos atualizados";
+$text['message-upgrade_svn_scripts']['fr-fr'] = "Source Fichiers mis à jour";
+$text['message-upgrade_svn_scripts']['pt-br'] = "Fonte de arquivos atualizados";
+$text['message-upgrade_svn_scripts']['pl'] = "Aktualizacja plików źródłowych powiodła się";
+$text['message-upgrade_svn_scripts']['sv-se'] = "Källfiler Uppdaterade";
+
 $text['message-upgrade_schema']['en-us'] = "Schema Verified";
 $text['message-upgrade_schema']['en-us'] = "Schema Verified";
 $text['message-upgrade_schema']['es-cl'] = "Esquema Verified";
 $text['message-upgrade_schema']['es-cl'] = "Esquema Verified";
 $text['message-upgrade_schema']['pt-pt'] = "Esquema Verificado";
 $text['message-upgrade_schema']['pt-pt'] = "Esquema Verificado";
@@ -256,13 +264,13 @@ $text['header-database_type']['pt-br'] = "Tipo de base de dados";
 $text['header-database_type']['pl'] = "Rodzaj bazy danych";
 $text['header-database_type']['pl'] = "Rodzaj bazy danych";
 $text['header-database_type']['sv-se'] = "Databas Typ";
 $text['header-database_type']['sv-se'] = "Databas Typ";
 
 
-$text['description-upgrade_svn']['en-us'] = "Updates FusionPBX source files from the Subversion respository.";
-$text['description-upgrade_svn']['es-cl'] = "Archivos de origen Actualizaciones FusionPBX del repositorio Subversion.";
-$text['description-upgrade_svn']['pt-pt'] = "Arquivos de origem Atualizações FusionPBX do repositório Subversion.";
-$text['description-upgrade_svn']['fr-fr'] = "Fichiers sources des mises à jour FusionPBX du respository Subversion.";
+$text['description-upgrade_svn']['en-us'] = "Updates FusionPBX source files and scripts from the respository.";
+$text['description-upgrade_svn']['es-cl'] = "Archivos de origen Actualizaciones FusionPBX del repositorio.";
+$text['description-upgrade_svn']['pt-pt'] = "Arquivos de origem Atualizações FusionPBX do repositório.";
+$text['description-upgrade_svn']['fr-fr'] = "Fichiers sources des mises à jour FusionPBX du respository.";
 $text['description-upgrade_svn']['pt-br'] = "Arquivos de atualização";
 $text['description-upgrade_svn']['pt-br'] = "Arquivos de atualização";
-$text['description-upgrade_svn']['pl'] = "Uaktualnia pliki źródłowe FusionPBX z przechowalni Subversion.";
-$text['description-upgrade_svn']['sv-se'] = "Uppdaterar FusionPBX källfiler från Subversion respository .";
+$text['description-upgrade_svn']['pl'] = "Uaktualnia pliki źródłowe FusionPBX z przechowalni.";
+$text['description-upgrade_svn']['sv-se'] = "Uppdaterar FusionPBX källfiler från respository.";
 
 
 $text['description-upgrade_schema']['en-us'] = "Checks to ensure table and field integrity in the database.";
 $text['description-upgrade_schema']['en-us'] = "Checks to ensure table and field integrity in the database.";
 $text['description-upgrade_schema']['es-cl'] = "Los cheques para asegurar mesa y campo de integridad en la base de datos.";
 $text['description-upgrade_schema']['es-cl'] = "Los cheques para asegurar mesa y campo de integridad en la base de datos.";

+ 23 - 1
core/upgrade/index.php

@@ -69,7 +69,29 @@ if (sizeof($_POST) > 0) {
 			$response_message = $text['message-upgrade_svn_failed'];
 			$response_message = $text['message-upgrade_svn_failed'];
 		}
 		}
 		else {
 		else {
-			$response_message = $text['message-upgrade_svn'];
+			//update scripts folder, if allowed (default)
+				if ($_SESSION['switch']['scripts_update']['boolean'] != 'false' && $_SESSION['switch']['scripts']['dir'] != '') {
+					$scripts_dir_target = $_SESSION['switch']['scripts']['dir'];
+					$scripts_dir_source = realpath($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/resources/install/scripts');
+					foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($scripts_dir_source)) as $file_path_source) {
+						if (
+							substr_count($file_path_source, '/..') == 0 &&
+							substr_count($file_path_source, '/.') == 0 &&
+							substr_count($file_path_source, '/.svn') == 0
+							) {
+							$file_path_target = str_replace($scripts_dir_source, $scripts_dir_target, $file_path_source);
+							if ($file_path_target != $scripts_dir_target.'/resources/config.lua') {
+								//echo $file_path_source.' ---> '.$file_path_target.'<br>';
+								copy($file_path_source, $file_path_target);
+								chmod($file_path_target, 0755);
+							}
+						}
+					}
+					$response_message = $text['message-upgrade_svn_scripts'];
+				}
+				else {
+					$response_message = $text['message-upgrade_svn'];
+				}
 		}
 		}
 	}
 	}