From be1b528df93d7d2ce4ee8cb8099429596444683c Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Fri, 10 Oct 2014 07:56:17 +0000 Subject: [PATCH] update.pm: handle non-standard fhem.pl location (Forum 27451) git-svn-id: https://svn.fhem.de/fhem/trunk@6736 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_update.pm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/fhem/FHEM/98_update.pm b/fhem/FHEM/98_update.pm index 410e12fc4..78c83205c 100644 --- a/fhem/FHEM/98_update.pm +++ b/fhem/FHEM/98_update.pm @@ -19,6 +19,7 @@ my $updateInBackground; my $updRet; my %updDirs; my $updArg; +my $mainPgm = "/fhem.pl\$"; ######################################## @@ -331,8 +332,10 @@ upd_writeFile($$$$) my $rest = ($restoreDir ? "trying to restore the previous version and ":""). "aborting the update"; - if(!open(FD, ">$root/$fName")) { - uLog 1, "open $root/$fName failed: $!, $rest"; + my $fPath = "$root/$fName"; + $fPath = $0 if($fPath =~ m/$mainPgm/); + if(!open(FD, ">$fPath")) { + uLog 1, "open $fPath failed: $!, $rest"; mv "$root/$restoreDir/$fName", "$root/$fName" if($restoreDir); return 0; } @@ -340,14 +343,14 @@ upd_writeFile($$$$) print FD $content; close(FD); - my $written = -s "$root/$fName"; + my $written = -s "$fPath"; if($written != length($content)) { - uLog 1, "writing $root/$fName failed: $!, $rest"; - mv "$root/$restoreDir/$fName", "$root/$fName" if($restoreDir); + uLog 1, "writing $fPath failed: $!, $rest"; + mv "$root/$restoreDir/$fName", "$fPath" if($restoreDir); return; } - cfgDB_FileUpdate("$root/$fName") if(configDBUsed()); + cfgDB_FileUpdate("$fPath") if(configDBUsed()); return 1; }