5
0
mirror of git://git.proxmox.com/git/pve-zsync.git synced 2025-01-18 14:03:35 +03:00

introduce and use read_file helper

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
This commit is contained in:
Fabian Ebner 2020-12-17 15:17:38 +01:00 committed by Thomas Lamprecht
parent f06c336b2a
commit d01b047d26

View File

@ -81,6 +81,19 @@ sub check_bin {
die "unable to find command '$bin'\n";
}
sub read_file {
my ($filename, $one_line_only) = @_;
my $fh = IO::File->new($filename, "r")
or die "Could not open file ${filename}: $!\n";
my $text = $one_line_only ? <$fh> : [ <$fh> ];
close($fh);
return $text;
}
sub cut_target_width {
my ($path, $maxlen) = @_;
$path =~ s@/+@/@g;
@ -202,14 +215,9 @@ sub read_cron {
return undef;
}
my $fh = IO::File->new("< $CRONJOBS");
die "Could not open file $CRONJOBS: $!\n" if !$fh;
my $text = read_file($CRONJOBS, 0);
my @text = <$fh>;
close($fh);
return encode_cron(@text);
return encode_cron(@{$text});
}
sub parse_argv {
@ -329,28 +337,14 @@ sub read_state {
return undef;
}
my $fh = IO::File->new("< $STATE");
die "Could not open file $STATE: $!\n" if !$fh;
my $text = <$fh>;
my $states = decode_json($text);
close($fh);
return $states;
my $text = read_file($STATE, 1);
return decode_json($text);
}
sub update_state {
my ($job) = @_;
my $text;
my $in_fh;
eval {
$in_fh = IO::File->new("< $STATE");
die "Could not open file $STATE: $!\n" if !$in_fh;
$text = <$in_fh>;
};
my $text = eval { read_file($STATE, 1); };
my $out_fh = IO::File->new("> $STATE.new");
die "Could not open file ${STATE}.new: $!\n" if !$out_fh;
@ -382,9 +376,6 @@ sub update_state {
close($out_fh);
rename "$STATE.new", $STATE;
eval {
close($in_fh);
};
return $states;
}
@ -399,12 +390,9 @@ sub update_cron {
my $header = "SHELL=/bin/sh\n";
$header .= "PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin\n\n";
my $fh = IO::File->new("< $CRONJOBS");
die "Could not open file $CRONJOBS: $!\n" if !$fh;
my $current = read_file($CRONJOBS, 0);
my @test = <$fh>;
while (my $line = shift(@test)) {
foreach my $line (@{$current}) {
chomp($line);
if ($line =~ m/source $job->{source} .*name $job->{name} /) {
$updated = 1;
@ -433,7 +421,6 @@ sub update_cron {
close ($new_fh);
die "can't move $CRONJOBS.new: $!\n" if !rename "${CRONJOBS}.new", $CRONJOBS;
close ($fh);
}
sub format_job {