Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
use Clone qw(clone);
use Linux::Inotify2;
use base 'Exporter';
use Clone qw(clone);
use Linux::Inotify2;
use base 'Exporter';
+use JSON;
+use Encode qw(encode decode);
our @EXPORT_OK = qw(read_file write_file register_file);
our @EXPORT_OK = qw(read_file write_file register_file);
- 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";
+ });