MD to HTML: allow extra header stuff
[openssl-web.git] / bin / mk-latest
1 #! /usr/bin/perl -w
2 use strict;
3
4 die "Missing args\n" if $#ARGV < 0;
5 my $SRCDIR = $ARGV[0]; shift;
6
7 chdir $SRCDIR || die "Can't chdir $SRCDIR, $!";
8
9 my @tarballs =
10        sort grep /openssl-\d+\.\d+\.\d+[a-z]*\.tar\.gz$/,
11                glob("openssl-*.tar.gz");
12 die "No tgz files found in $SRCDIR?\n" if $#tarballs < 1;
13
14 my %series = ();
15 foreach(@tarballs) {
16         my ($version, $serie) = /^openssl-((\d+\.\d+\.\d+)[a-z]*)\./;
17         $series{$serie} = $_;
18 }
19 my $latest = $series{ (reverse sort keys %series)[0] };
20
21 print <<"EOF";
22 ######################################################################
23 # Please do NOT edit this file directly!
24 # Instead, edit bin/mk-latest in the master branch of openssl-web.git
25 #####
26
27 RewriteEngine on
28 RewriteBase /source
29 # First, rewrite all the 'latest' URLs
30 RewriteRule ^latest.tar.gz\$ $latest [L,R=302,NC]
31 EOF
32
33 foreach (sort keys %series) {
34         my $rule = "openssl-$_-latest.tar.gz";
35         #don't bother: $rule =~ s|\.|\\.|g;
36         my $target = $series{$_};
37         print "RewriteRule ^$rule\$ $target [L,R=302,NC]\n";
38 }
39
40 print <<\EOF;
41
42 # Old distro's are in subdirs.
43 RewriteCond %{REQUEST_FILENAME} !-f
44 RewriteRule ^(openssl-0\.9\.\d.*) old/0.9.x/$1 [L]
45 RewriteCond %{REQUEST_FILENAME} !-f
46 RewriteRule ^(openssl-(\d+\.\d+\.\d+).*) old/$2/$1 [L]
47 RewriteCond %{REQUEST_FILENAME} !-f
48 RewriteRule ^openssl-(fips.*)  old/fips/openssl-$1 [L]
49
50 <Files *.gz.asc>
51     RemoveEncoding .gz
52 </Files>
53 <Files *.gz.md5>
54     RemoveEncoding .gz
55 </Files>
56 <Files *.gz.sha1>
57     RemoveEncoding .gz
58 </Files>
59 EOF