From 0c815b5661849d3755f62fd20a249e95d6b9328f Mon Sep 17 00:00:00 2001
From: Florian Schaal <info@schaal-24.de>
Date: Mon, 29 Jul 2019 09:35:06 +0200
Subject: [PATCH] add parameter-option to ispconfig_patch for unattended
 patches

---
 server/scripts/ispconfig_patch | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/server/scripts/ispconfig_patch b/server/scripts/ispconfig_patch
index 6ed2a3f5ae..a3361f507d 100644
--- a/server/scripts/ispconfig_patch
+++ b/server/scripts/ispconfig_patch
@@ -87,6 +87,13 @@ function is_installed($appname) {
 	}
 }
 
+$cmd_opt = getopt('', array('patch_id::'));
+$auto = false;
+if(isset($cmd_opt['patch_id'])) {
+	$patch_id = $cmd_opt['patch_id'];
+	$auto = true;
+}
+
 echo "\n\n".str_repeat('-',80)."\n";
 echo " _____ ___________   _____              __ _       
 |_   _/  ___| ___ \ /  __ \            / _(_)      
@@ -98,14 +105,14 @@ echo " _____ ___________   _____              __ _
                                              |___/ ";
 echo "\n".str_repeat('-',80)."\n";
 echo "\n\n>> Patch tool  \n\n";
-echo "Please enter the patch id that you want to be applied to your ISPConfig installation.\nPlease be aware that we take NO responsibility that this will work for you.\nOnly use patches if you know what you are doing.\n\n";
+if(!$auto) echo "Please enter the patch id that you want to be applied to your ISPConfig installation.\nPlease be aware that we take NO responsibility that this will work for you.\nOnly use patches if you know what you are doing.\n\n";
 
 if(!is_installed('patch')) {
 	swriteln("The program 'patch' is missing on your server. Please install it and try again.");
 	exit;
 }
 
-$patch_id = simple_query('Enter patch id', false, '');
+if(!$auto) $patch_id = simple_query('Enter patch id', false, '');
 if($patch_id == '') {
     swriteln("Patch terminated by user.\n");
     die();
@@ -122,7 +129,7 @@ if(!$patch_data) {
 
 $patch_text = @file_get_contents('http://ispconfig.org/downloads/patches/' . $patch_id . '.txt');
 if($patch_text) {
-    $ok = simple_query("Patch description:\n".str_repeat("-", 80)."\n".$patch_text."\n".str_repeat("-", 80)."\nDo you really want to apply this patch now?", array('y','n'), 'y');
+    if($auto) $ok = 'y'; else $ok = simple_query("Patch description:\n".str_repeat("-", 80)."\n".$patch_text."\n".str_repeat("-", 80)."\nDo you really want to apply this patch now?", array('y','n'), 'y');
     if($ok != 'y') {
         swriteln("Patch terminated by user.\n");
         die();
@@ -140,4 +147,4 @@ unlink($temp_file);
 
 exit;
 
-?>
\ No newline at end of file
+?>
-- 
GitLab