Procházet zdrojové kódy

testing out windows update...

causefx před 7 roky
rodič
revize
df2ffce20d
4 změnil soubory, kde provedl 138 přidání a 0 odebrání
  1. 10 0
      api/functions/organizr-functions.php
  2. 19 0
      api/index.php
  3. 20 0
      js/functions.js
  4. 89 0
      scripts/windows-update.bat

+ 10 - 0
api/functions/organizr-functions.php

@@ -2156,6 +2156,16 @@ function dockerUpdate()
 	return $dockerUpdate;
 }
 
+function windowsUpdate()
+{
+	$branch = ($GLOBALS['branch'] == 'v2-master') ? '-m' : '-d';
+	ini_set('max_execution_time', 0);
+	set_time_limit(0);
+	$windowsScript = dirname(__DIR__, 2) . DIRECTORY_SEPARATOR . 'scripts' . DIRECTORY_SEPARATOR . 'windows-update.bat ' . $branch;
+	$windowsUpdate = exec($windowsScript);
+	return $windowsUpdate;
+}
+
 function checkHostPrefix($s)
 {
 	if (empty($s)) {

+ 19 - 0
api/index.php

@@ -1301,6 +1301,25 @@ switch ($function) {
 				break;
 		}
 		break;
+	case 'v1_windows_update':
+		switch ($method) {
+			case 'GET':
+				if (qualifyRequest(1)) {
+					$result['status'] = 'success';
+					$result['statusText'] = 'success';
+					$result['data'] = windowsUpdate();
+				} else {
+					$result['status'] = 'error';
+					$result['statusText'] = 'API/Token invalid or not set';
+					$result['data'] = null;
+				}
+				break;
+			default:
+				$result['status'] = 'error';
+				$result['statusText'] = 'The function requested is not defined for method: ' . $method;
+				break;
+		}
+		break;
 	default:
 		//No Function Available
 		$result['status'] = 'error';

+ 20 - 0
js/functions.js

@@ -3156,6 +3156,26 @@ function dockerUpdate(){
         });
     }
 }
+function windowsUpdate(){
+    if(activeInfo.serverOS == 'win'){
+        $(updateBar()).appendTo('.organizr-area');
+        updateUpdateBar('Starting Download','20%');
+        messageSingle(window.lang.translate('[DO NOT CLOSE WINDOW]'),window.lang.translate('Starting Update Process'),activeInfo.settings.notifications.position,'#FFF','success','60000');
+        organizrAPI('GET','api/?v1/windows/update').success(function(data) {
+            try {
+                var json = JSON.parse(data);
+            }catch(e) {
+                console.log(e + ' error: ' + data);
+                orgErrorAlert('<h4>' + e + '</h4>' + formatDebug(data));
+                return false;
+            }
+            updateUpdateBar('Restarting Organizr in', '100%', true);
+            messageSingle(window.lang.translate('[DO NOT CLOSE WINDOW]'),json.data,activeInfo.settings.notifications.position,'#FFF','success','60000');
+        }).fail(function(xhr) {
+            console.error("Organizr Function: Reboot Failed");
+        });
+    }
+}
 function updateNow(){
     clearAJAX();
     if(activeInfo.settings.misc.docker){

+ 89 - 0
scripts/windows-update.bat

@@ -0,0 +1,89 @@
+@ECHO off
+SET ou_v=v2.5
+title Oraganizr v2 Updater for Win
+COLOR 03
+ECHO      ___           ___                  
+ECHO     /  /\         /  /\           ___   
+ECHO    /  /::\       /  /:/_         /__/\  
+ECHO   /  /:/\:\     /  /:/ /\        \__\:\ 
+ECHO  /  /:/  \:\   /  /:/ /:/_       /  /::\
+ECHO /__/:/ \__\:\ /__/:/ /:/ /\   __/  /:/\/
+ECHO \  \:\ /  /:/ \  \:\/:/ /:/  /__/\/:/
+ECHO  \  \:\  /:/   \  \::/ /:/   \  \::/    
+ECHO   \  \:\/:/     \  \:\/:/     \  \:\    
+ECHO    \  \::/       \  \::/       \__\/    
+ECHO     \__\/         \__\/             ~~ %ou_v%
+ECHO.      
+ECHO Organizr v2 Updater
+ECHO.
+echo Running from: %~dp0
+ECHO.
+CD /d %~dp0
+
+IF "%*"=="" GOTO :master_vars
+IF "%*"=="-m" GOTO :master_vars
+IF "%*"=="-d" GOTO :dev_vars
+
+:master_vars
+ECHO Master Branch
+SET branch=Master
+SET org_url=https://github.com/causefx/Organizr/archive/v2-master.zip
+SET orgzip_extract_name=Organizr-2-master
+GOTO :STARTUPDATE
+
+:dev_vars
+ECHO Dev Branch
+SET branch=Dev
+SET org_url=https://github.com/causefx/Organizr/archive/v2-develop.zip
+SET orgzip_extract_name=Organizr-2-develop
+GOTO :STARTUPDATE
+
+:STARTUPDATE
+REM CD /d %~dp0
+ECHO.
+IF NOT EXIST "%~dp0organizr" GOTO UPDATE
+ECHO ##############################
+ECHO Cleanup in progress
+ECHO ##############################
+RMDIR /s /q %~dp0organizr
+ECHO.
+ECHO Deleted
+ECHO.
+
+:UPDATE
+ECHO #############################
+ECHO Updating OrganizrV2-(%branch%)
+ECHO #############################
+ECHO.
+REM cscript dl_config\5_orgdl.vbs //Nologo
+ECHO.
+ECHO Download In Progress...
+powershell -command "$clnt = new-object System.Net.WebClient; $clnt.DownloadFile(\"%org_url%\", \"organizr.zip\")"
+ECHO.
+
+ECHO Extraction In Progress...
+ECHO.
+powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('organizr.zip', '.'); }"
+
+ECHO Applying Update...
+ECHO.
+MOVE %~dp0%orgzip_extract_name% organizr >nul 2>&1
+DEL /s /q %~dp0organizr.zip
+ROBOCOPY organizr ..\ /E /MOVE /NFL /NDL /NJH /nc /ns /np
+
+IF NOT EXIST "%~dp0organizr" GOTO END
+ECHO ##############################
+ECHO Cleanup in progress
+ECHO ##############################
+RMDIR /s /q %~dp0organizr
+ECHO.
+ECHO Deleted
+:END
+
+ECHO.
+ECHO Update From Master Completed...
+
+ECHO.
+ECHO Done!
+ECHO.
+REM pause