/[qa]/trunk/data/watch/update-sf-list
ViewVC logotype

Contents of /trunk/data/watch/update-sf-list

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2726 - (show annotations) (download)
Wed Mar 14 02:49:35 2012 UTC (14 months, 1 week ago) by pabs
File size: 2286 byte(s)
Ignore partial failures running rsync (Closes: #581169)
1 #!/bin/sh
2
3 ####################
4 # Copyright (C) 2009 by Raphael Geissert <atomo64@gmail.com>
5 #
6 # This file is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 2 of the License, or
9 # (at your option) any later version.
10 #
11 # This file is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this file. If not, see <http://www.gnu.org/licenses/>.
18 ####################
19
20 set -e
21
22 ret=0
23 rsync -Pvan --log-file=/dev/null --list-only ftp.heanet.ie::sourceforge > rsync-stdout.txt || ret=$?
24 if [ $ret -ne 0 -a $ret -ne 23 -a $ret -ne 24 ] ; then
25 exit $ret
26 fi
27
28 sed -rn 's/^-.+[0-9]{4}\/[0-9]{2}\/[0-9]{2}[[:space:]]+[0-9]{2}:[0-9]{2}:[0-9]{2}[[:space:]]+(.+)$/\1/;T;p' < rsync-stdout.txt > sf-list.new
29
30 perl -w <<'PCODE'
31
32 use strict;
33 use BerkeleyDB;
34
35 my %db;
36
37 tie %db, 'BerkeleyDB::Btree',
38 -Filename => "sf-list.db-new",
39 -Flags => DB_CREATE | DB_TRUNCATE,
40 -Mode => 0664
41 or die("Failed to open sf-list.db-new: $! $BerkeleyDB::Error\n");
42
43 sub gen_html;
44
45 open(LIST, '< sf-list.new')
46 or die("Failed to open sf-list.new: $!\n");
47
48 my $cur_project = undef;
49 my @files;
50
51 while(<LIST>) {
52 next unless(m,^\w/project/.{2}/([^/]+)/(?:([^/]+)|([^/]+)/(?:[^/]+/)*(.+))?$,);
53 my ($project, $file1, $mdir, $file2) = ($1, $2, $3, $4);
54 my $file = $file1 || $file2;
55
56 $mdir = $mdir || '';
57
58 next if ($mdir eq 'OldFiles');
59
60 $cur_project = $project unless (defined($cur_project));
61
62 if ($project ne $cur_project) {
63 $db{$cur_project} = gen_html;
64 $cur_project = $project;
65 }
66
67 push @files, $file;
68 }
69
70 if (@files) {
71 $db{$cur_project} = gen_html;
72 }
73
74 close(LIST);
75 untie %db;
76
77 sub gen_html {
78 my $html = '';
79 while (my $f = pop @files) {
80 $f =~ s/&/&amp;/;
81 $f =~ s/</&lt;/;
82 $f =~ s/>/&gt;/;
83 $html .= "<a href='$f'>$f</a><br/>\n";
84 }
85 return $html;
86 }
87
88 PCODE
89
90 gzip -n sf-list.new
91 mv sf-list.db-new sf-list.db
92 mv sf-list.new.gz sf-list.gz

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.5