X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=utils%2Fcreate-package-feed.pl;h=68781adbf450d49fbf12e3b3b790c662ebb5afc3;hp=0a3a9bb10f694bd57ce1c0659adbf5c78e225f0c;hb=a473a2a85dbf5325b270a906e85785ba4b032503;hpb=76eef346e3c51c41ae10fe71a517166700225871 diff --git a/utils/create-package-feed.pl b/utils/create-package-feed.pl old mode 100644 new mode 100755 index 0a3a9bb1..68781adb --- a/utils/create-package-feed.pl +++ b/utils/create-package-feed.pl @@ -1,5 +1,28 @@ #!/usr/local/bin/perl -#< LICENSE: WTFPL > + +############################################################################ +# create-package-feed.pl +# +# Generates an RSS feed for the released files. +# +# Usage: +# create-package-feed.pl "path/to/release/files" "path/to/rss/outputfile" +# +# Copyright (c) 2016 "Unknown", Fabian Keil +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +############################################################################ + use warnings; use strict; use Digest::SHA; @@ -7,7 +30,6 @@ my @months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); my @days = qw(Sun Mon Tue Wed Thu Fri Sat Sun); my $base_dlurl = 'https://www.privoxy.org/sf-download-mirror/'; -my $maxlimit = 1000; my $max_advertised_files = 100; sub generate_rss_item($$$$) { @@ -87,16 +109,12 @@ sub get_released_files($) { $target = $scan_dir . $fi1 . '/' . $fi2 . '/' . $fi3; next if (!-e $target); # skip if file is not exist - $target_sha256 = get_sha256_sum($target); - $target_uri = $fi1 . '/' . $fi2 . '/' . $fi3; $target_time = (stat $target)[9]; - $target_line = generate_rss_item($target, $target_uri, $target_time, $target_sha256); + $Array[$i] = ([$target_time, $target, $target_uri]); - $Array[$i] = ([$target_time, $target_line]); $i++; - die "maxlimit $maxlimit reached!" unless ($i < $maxlimit); } closedir($D3); } @@ -129,7 +147,15 @@ sub generate_feed($) { my @resArray = get_released_files($scan_dir); my $i = @resArray - 1; while ($max_advertised_files-- > 0 && $i >= 0) { - $result .= $resArray[$i][1]; + my $target_time = $resArray[$i][0]; + my $target = $resArray[$i][1]; + my $target_uri = $resArray[$i][2]; + + my $target_sha256 = get_sha256_sum($target); + + my $rss_item = generate_rss_item($target, $target_uri, $target_time, $target_sha256); + + $result .= $rss_item; $i--; } $result .= '