aboutsummaryrefslogtreecommitdiffstats
path: root/dist-tools/html2txt
blob: d2ae59a1d99134aa975a336e59542b2dc208bea1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#! /bin/sh

# html2txt.sh - A program to convert fetchmail's HTML documentation to text
# Copyright (C) 2004  Matthias Andree

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

# --------------------------------------------------------------------------

# Usage: html2txt.sh INPUT.html

# --------------------------------------------------------------------------

# Abort on error
set -e

# Parse arguments
if [ $# -ne 1 ] ; then
    echo >&2 "Usage: `basename $0 || echo $0` input.html"
    exit 1
fi

# Pull in variables
inp="$1"
tmp="html2txt.$$.html"

# now preprocess
trap "rm -f \"$tmp\"" 0 1 2 3 15
${AWK:=awk} '/<table .*summary="Canned/ { i=1; }
     /<\/table>/ { i=0; }
     { if (i == 0) print $0; }' "$inp" >"$tmp"

# and go!
echo "  (This file was generated from $inp)"
lynx -dump -nolist "$tmp"
rm -f "$tmp"
trap "" 0 1 2 3 15
ass="p">($wday, $month, $day, $time, $zone, $year) = split(' ', $datestring); my($jdate); # We don't deal with leap years here because the baseline day is after # the last leap year (1996) and there's a long time before the next # one (2004). $jdate = ($year - 1996) * 365; $jdate += $month_offsets{$month}; $jdate += ($day - 1); # Baseline day for the size data was Fri Oct 25 23:02:26 EDT 1996 $jdate -= 297; return($jdate); } open(NEWS, "NEWS"); $timestamp = `date`; chop $timestamp; $release = "unknown"; $lines = "unknown"; $date = "unknown"; $jdate = "unknown"; print <<EOF; # Population data from fetchmail NEWS file, as of $timestamp. # # Output other than pass-through % lines is tab-separated fields. # Field 1: release ID # Field 2: count of source lines under version control # Field 3: count of fetchmail-friends subscribers # Field 4: count of fetchmail-announce subscribers # Field 5: total subscribers to both lists # Field 6: date of release (days since first datum) # Field 7: date of release (RFC822 date format) # EOF while ($_ = <NEWS>) { my($sum); if (/^%/) { print $_; } elsif (/^fetchmail-([^ ]*) \(([^)]+)\)(, [0-9]* lines)?:/) { $release = $1; $date = $2; $jdate = &day_offset($date); if ($3) { $lines = substr($3, 2, length($3) - 8); } else { $lines = 'na' } } elsif (/There are ([0-9]*) people on fetchmail-friends and ([0-9]*) on fetchmail-announce/) { $sum = $1 + $2; print "${release}\t${lines}\t$1\t$2\t${sum}\t${jdate}\t${date}\n"; $release = "unknown"; $date = "unknown"; } elsif (/There are ([0-9]*) people on the fetchmail-friends list./) { print "$release\t${lines}\t$1\t0\t$1\t$jdate\t$date\n"; $release = "unknown"; $date = "unknown"; } } # end