[pve-devel] [PATCH common v2 2/3] INotify.pm: use run_command instead of open for calling diff
Dominik Csapak
d.csapak at proxmox.com
Fri Sep 7 10:22:16 CEST 2018
On 09/07/2018 10:08 AM, Thomas Lamprecht wrote:
> On 9/5/18 10:54 AM, Dominik Csapak wrote:
>> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
>> ---
>> src/PVE/INotify.pm | 15 +++++++--------
>> 1 file changed, 7 insertions(+), 8 deletions(-)
>>
>> diff --git a/src/PVE/INotify.pm b/src/PVE/INotify.pm
>> index f17f4c5..184f00d 100644
>> --- a/src/PVE/INotify.pm
>> +++ b/src/PVE/INotify.pm
>> @@ -19,7 +19,8 @@ use PVE::ProcFSTools;
>> use Clone qw(clone);
>> use Linux::Inotify2;
>> use base 'Exporter';
>> -use JSON;
>> +use JSON;
>> +use Encode qw(encode decode);
>>
>> our @EXPORT_OK = qw(read_file write_file register_file);
>>
>> @@ -56,13 +57,11 @@ sub ccache_compute_diff {
>>
>> my $diff = '';
>>
>> - open (TMP, "diff -b -N -u '$filename' '$shadow'|");
>> -
>> - while (my $line = <TMP>) {
>> - $diff .= $line;
>> - }
>> -
>> - close (TMP);
>> + my $cmd = ['/usr/bin/diff', '-b', '-N', '-u', $filename, $shadow];
>> + PVE::Tools::run_command($cmd, noerr => 1, outfunc => sub {
>> + my ($line) = @_;
>> + $diff .= decode('UTF-8', $line) . "\n";
>
> you also silently switch over to UTF-8 decoding all input without
> any mention in the commit message... What's that about?
>
>> + });
>>
>> $diff = undef if !$diff;
>>
>>
>
hmm yeah sorry,
i noticed that showing the diff of the network interfaces file with utf8
comments had the same problem with displaying it so i inserted it there
i am not sure about the correct behaviour here
we only use the diff for /etc/network/interfaces (AFAICS)
but it does not feel right to e.g. only decode lines starting with '#'
alternatives?
More information about the pve-devel
mailing list