add regex for error message, change dist-upgrade to full-upgrade

This commit is contained in:
Marko Oldenburg
2019-04-29 21:27:40 +02:00
parent 23ec822a11
commit e34f7a3471

View File

@ -36,7 +36,7 @@ use strict;
use warnings; use warnings;
use FHEM::Meta; use FHEM::Meta;
my $version = "1.99.7"; my $version = "1.99.8";
sub AptToDate_Initialize($) { sub AptToDate_Initialize($) {
@ -52,7 +52,7 @@ sub AptToDate_Initialize($) {
"disable:1 " "disable:1 "
. "disabledForIntervals " . "disabledForIntervals "
. "upgradeListReading:1 " . "upgradeListReading:1 "
# . "distupgrade:1 " . "distupgrade:1 "
. $readingFnAttributes; . $readingFnAttributes;
foreach my $d ( sort keys %{ $modules{AptToDate}{defptr} } ) { foreach my $d ( sort keys %{ $modules{AptToDate}{defptr} } ) {
@ -107,12 +107,14 @@ BEGIN {
my %regex = ( my %regex = (
'en' => { 'en' => {
'update' => '^Reading package lists...$', 'update' => '^Reading package lists...$',
'upgrade' => '^Unpacking (\S+)\s\((\S+)\)\s+over\s+\((\S+)\)' 'upgrade' => '^Unpacking (\S+)\s\((\S+)\)\s+over\s+\((\S+)\)',
'sudoersError' => '^sudo: no tty present and no askpass program specified'
}, },
'de' => { 'de' => {
'update' => '^Paketlisten werden gelesen...$', 'update' => '^Paketlisten werden gelesen...$',
'upgrade' => '^Entpacken von (\S+)\s\((\S+)\)\s+über\s+\((\S+)\)' 'upgrade' => '^Entpacken von (\S+)\s\((\S+)\)\s+über\s+\((\S+)\)',
'sudoersError' => '^sudo: Kein TTY vorhanden und kein »askpass«-Programm angegeben'
} }
); );
@ -570,7 +572,7 @@ sub ExecuteAptGetCommand($) {
if ( $aptget->{distupgrade} == 0 ); if ( $aptget->{distupgrade} == 0 );
$apt->{aptgettoupgrade} = 'ssh ' $apt->{aptgettoupgrade} = 'ssh '
. $aptget->{host} . $aptget->{host}
. ' \'echo n | sudo apt -y -q -V dist-upgrade\'' . ' \'echo n | sudo apt -y -q -V full-upgrade\''
if ( $aptget->{distupgrade} == 1 ); if ( $aptget->{distupgrade} == 1 );
} }
@ -582,7 +584,7 @@ sub ExecuteAptGetCommand($) {
$apt->{aptgetupgrade} = 'echo n | sudo apt -s -q -V upgrade'; $apt->{aptgetupgrade} = 'echo n | sudo apt -s -q -V upgrade';
$apt->{aptgettoupgrade} = 'echo n | sudo apt -y -q -V upgrade' $apt->{aptgettoupgrade} = 'echo n | sudo apt -y -q -V upgrade'
if ( $aptget->{distupgrade} == 0 ); if ( $aptget->{distupgrade} == 0 );
$apt->{aptgettoupgrade} = 'echo n | sudo apt -y -q -V dist-upgrade' $apt->{aptgettoupgrade} = 'echo n | sudo apt -y -q -V full-upgrade'
if ( $aptget->{distupgrade} == 1 ); if ( $aptget->{distupgrade} == 1 );
} }
@ -666,7 +668,7 @@ sub AptUpdate($) {
Log3 'Update', 4, "Daten erhalten"; Log3 'Update', 4, "Daten erhalten";
} }
elsif ( $line =~ s#^sudo: no tty present and no askpass program specified## ) { # error elsif ( $line =~ s#$regex{$apt->{lang}}{sudoersError}## ) { # error
my $error = {}; my $error = {};
$error->{message} = 'did you create an /etc/sudoers.d entry? Example: fhem ALL = NOPASSWD: /usr/bin/apt'; $error->{message} = 'did you create an /etc/sudoers.d entry? Example: fhem ALL = NOPASSWD: /usr/bin/apt';
push( @{ $update->{error} }, $error ); push( @{ $update->{error} }, $error );