From cae3149411d1f24e533eb6028e7fe5c3057c4626 Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Sat, 16 Jul 2016 11:42:51 +0000 Subject: [PATCH] create-package-feed.pl: Polish file and directory handling --- utils/create-package-feed.pl | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/utils/create-package-feed.pl b/utils/create-package-feed.pl index ae50c36d..e5050864 100644 --- a/utils/create-package-feed.pl +++ b/utils/create-package-feed.pl @@ -35,30 +35,31 @@ my $target_line; # # 1st & 2nd directory should NOT contain ANY 'FILES'. (expecting only 'Directory') # -opendir(D1, $scan_dir) or die "Can't open 1st directory! /"; -while (my $fi1 = readdir(D1)) { +opendir(my $D1, $scan_dir) or die "Can't open 1st directory! /"; +while (my $fi1 = readdir($D1)) { next if ($fi1 =~ m/^\./); next if ($fi1 eq 'OldFiles' or $fi1 eq 'pkgsrc'); - opendir(D2, $scan_dir . $fi1 . '/') + opendir(my $D2, $scan_dir . $fi1 . '/') or die "Can't open 2nd directory! /$fi1"; - while (my $fi2 = readdir(D2)) { + while (my $fi2 = readdir($D2)) { next if ($fi2 =~ m/^\./); ## start listing /OS/Version/FILE - opendir(D3, $scan_dir . $fi1 . '/' . $fi2 . '/') + opendir(my $D3, $scan_dir . $fi1 . '/' . $fi2 . '/') or die "Can't open 3rd directory! /$fi1/$fi2"; - while (my $fi3 = readdir(D3)) { + while (my $fi3 = readdir($D3)) { next if ($fi3 =~ m/^\./); $target = $scan_dir . $fi1 . '/' . $fi2 . '/' . $fi3; next if (!-e $target); # skip if file is not exist # Get SHA-1 hash my $filedata; - unless (open $filedata, $target) { next; } + open($filedata, "<", $target) + or die "Can't open '$target' to generate checksum $!"; my $sha1 = Digest::SHA1->new; $sha1->addfile($filedata); - close $filedata; + close($filedata); $target_sha1 = $sha1->hexdigest; # URI and Time @@ -96,14 +97,14 @@ while (my $fi1 = readdir(D1)) { $i++; die "maxlimit $maxlimit reached!" unless ($i < $maxlimit); } - closedir D3; + closedir($D3); ## end listing /OS/Version/FILE } - closedir D2; + closedir($D2); } -closedir D1; +closedir($D1); # Result = Full XML Codes my $result = @@ -125,6 +126,6 @@ while ($max_advertised_files-- > 0 && $i >= 0) { $result .= ''; # Save it. -open(XMLF, "> $save_rss_file") or die "Failed to write XML file"; -print XMLF $result; -close(XMLF); +open(my $XMLF, ">", $save_rss_file) or die "Failed to write XML file"; +print $XMLF $result; +close($XMLF); -- 2.39.2