From 621ea4cfe7ef7766ccebaafd37c64c3a7b17ff09 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sat, 9 Mar 2024 09:21:17 +0000 Subject: [PATCH] 98_update.pm: go in background for single-file (Forum #137382) git-svn-id: https://svn.fhem.de/fhem/trunk@28624 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_update.pm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/fhem/FHEM/98_update.pm b/fhem/FHEM/98_update.pm index 005cf9365..ba897df3e 100644 --- a/fhem/FHEM/98_update.pm +++ b/fhem/FHEM/98_update.pm @@ -49,6 +49,9 @@ CommandUpdate($$) my ($cl,$param) = @_; my @args = split(/ +/,$param); + return "An update is already running" if($upd_running); + $upd_running = 1; + my $err = upd_metainit(0); return $err if($err); @@ -73,13 +76,14 @@ CommandUpdate($$) my $ret = eval { "Hello" =~ m/$arg/ }; return "first argument must be a valid regexp, all, force, check or checktime" if($arg =~ m/^[-\?\*]/ || $ret); - $arg = lc($arg) if($arg =~ m/^(check|checktime|all|force)$/i); $updateInBackground = AttrVal("global","updateInBackground",1); - $updateInBackground = 0 if($arg ne "all"); + if($arg =~ m/^(check|checktime|all|force)$/i) { + $arg = lc($arg); + $updateInBackground = 0; + } + $updArg = $arg; - return "An update is already running" if($upd_running); - $upd_running = 1; if($updateInBackground) { CallFn($cl->{NAME}, "ActivateInformFn", $cl, "log") if($cl); sub updDone(@) { $upd_running=0 }