#!/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 <fk@fabiankeil.de>
+#
+# 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;
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($$$$) {
$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);
}
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 .= ' </channel>