From 7883e7e4197a724c04387e004d64789858d4f754 Mon Sep 17 00:00:00 2001 From: loredo Date: Thu, 18 Apr 2019 10:38:13 +0000 Subject: [PATCH] 98_Installer: improved error handling during cpanminus installation git-svn-id: https://svn.fhem.de/fhem/trunk@19213 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_Installer.pm | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/fhem/FHEM/98_Installer.pm b/fhem/FHEM/98_Installer.pm index b4270fef3..94e4d2471 100644 --- a/fhem/FHEM/98_Installer.pm +++ b/fhem/FHEM/98_Installer.pm @@ -37,7 +37,7 @@ use POSIX; use FHEM::Meta; use GPUtils qw(GP_Import); -use JSON; +use JSON::PP; use Data::Dumper; use Config; use ExtUtils::Installed; @@ -77,9 +77,6 @@ BEGIN { RemoveInternalTimer TimeNow Value - trim - ltrim - rtrim ) ); } @@ -819,11 +816,11 @@ sub ExecuteFhemCommand($) { if ( $1 =~ /App::cpanminus/i ) { $installer->{installperl} = 'echo n | if [ -z "$(cpanm --version 2>/dev/null)" ]; then' - . ' sh -c "curl -sSL https://git.io/cpanm | ' + . ' sh -c "curl -fsSL https://git.io/cpanm | ' . $sudo . '$(which perl) - App::cpanminus >/dev/null 2>&1" 2>&1; ' . 'fi; ' - . 'cpanm --version >/dev/null 2>&1' + . 'cpanm --version >/dev/null' . ' && sh -c "' . $sudo . ' $(which cpanm) --quiet App::cpanoutdated" 2>&1'; @@ -924,7 +921,8 @@ sub GetCpanVersion($) { } elsif ($isInc) { $line =~ s/^\s+//g; - push @{ $h->{versions}{INC} }, $line; + push @{ $h->{versions}{INC} }, $line + unless ( $line =~ /^.+=.+$/i ); } # error @@ -1771,7 +1769,7 @@ sub CreateInstalledPerlList($$) { . ( defined( $packages->{$package}{version} ) && $packages->{$package}{version} - ? version->parse( $packages->{$package}{version} )->normal + ? $packages->{$package}{version} : '?' ) . $tdClose; $l .= $trClose; @@ -2029,7 +2027,7 @@ sub CreatePrereqsList { my $thOpen2 = ''; my $thOpen3 = ''; my $tdOpen = ''; - my $tdOpen1 = ''; + my $tdOpen1 = ''; my $tdOpen2 = ''; my $tdOpen3 = ''; my $tdOpen4 = ''; @@ -2245,14 +2243,15 @@ sub CreatePrereqsList { if ( $linecount > 1 ) { my $action = -''; # push @ret, # ( $linecount % 2 == 0 ? $trOpenEven : $trOpenOdd ) @@ -4303,7 +4302,8 @@ m/^([^<>\n\r]+?)(?:\s+(\(last release only\)))?(?:\s+(?:<(.*)>))?$/ . $hash->{NAME} . ' installPerl ' . $prereq . ' ' - . $FW_CSRF . '" title="Click here to trigger installation">' + . $FW_CSRF + . '" title="Click here to trigger installation">' . ( $installed eq 'outdated' ? 'Update' : 'Install' ) . ''; } @@ -4325,7 +4325,8 @@ m/^([^<>\n\r]+?)(?:\s+(\(last release only\)))?(?:\s+(?:<(.*)>))?$/ . $hash->{NAME} . ' installPerl ' . $prereq . ' ' - . $FW_CSRF . '" title="Click here to trigger installation">' + . $FW_CSRF + . '" title="Click here to trigger installation">' . ( $installed eq 'outdated' ? 'Update' : 'Install' ) . ''; } @@ -4375,7 +4376,7 @@ m/^([^<>\n\r]+?)(?:\s+(\(last release only\)))?(?:\s+(?:<(.*)>))?$/ push @ret, $tFOpen . $trOpenEven - . ($html?$tdOpen4:$tdOpen3) + . ( $html ? $tdOpen4 : $tdOpen3 ) . $strongOpen . 'Hint:' . $strongClose . ' The module does not provide Perl prerequisites from its metadata.' @@ -5392,7 +5393,7 @@ sub __list_module { "abstract": "Modul zum Update von FHEM, zur Installation von Drittanbieter FHEM Modulen und der Verwaltung von Systemvoraussetzungen" } }, - "version": "v0.5.0", + "version": "v0.5.1", "release_status": "testing", "author": [ "Julian Pawlowski "