diff --git a/fhem/FHEM/99_Utils.pm b/fhem/FHEM/99_Utils.pm index e20efc722..0081da81e 100644 --- a/fhem/FHEM/99_Utils.pm +++ b/fhem/FHEM/99_Utils.pm @@ -264,6 +264,31 @@ sortTopicNum(@) return @sorted; } +sub +Svn_GetFile($$) +{ + my ($from, $to) = @_; + require HttpUtils; + return "Missing argument from or to" if(!$from || !$to); + return "Forbidden characters in from/to" + if($from =~ m/\.\./ || $to =~ m/\.\./); + HttpUtils_NonblockingGet({ + url=>"https://svn.fhem.de/trac/browser/trunk/fhem/$from?format=txt", + callback=>sub($$$){ + if($_[1]) { + Log 1, "ERROR Svn_GetFile $from: $_[1]"; + return; + } + if(!open(FH,">$to")) { + Log 1, "ERROR Svn_GetFile $to: $!"; + return; + } + print FH $_[2]; + close(FH); + Log 1, "SVN download of $from to $to finished"; + }}); + return "Download started, check the FHEM-log"; +} 1; @@ -358,6 +383,15 @@ sortTopicNum(@) (Forum #98578) +
{ Svn_GetFile("contrib/86_FS10.pm", "FHEM/86_FS10.pm") }
+