[pve-devel] [PATCH common v3 2/3] INotify.pm: use run_command instead of open for calling diff
Dominik Csapak
d.csapak at proxmox.com
Wed Sep 12 10:24:10 CEST 2018
decode it as utf8, else we get garbage on the gui
when having utf8 characters in comments in /etc/network/interfaces
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 dee9a3e..8b5544e 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";
+ });
$diff = undef if !$diff;
--
2.11.0
More information about the pve-devel
mailing list