From 85edbc92ac618b5d693999c3fe02f472550c0689 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Tue, 26 Oct 2021 19:00:06 -0400 Subject: [PATCH] fnsince.pl: Added a way to sync this information to the wiki. This will let us automate this so it's managed for us, and as things go from development to official releases, the documentation will automatically update! --- build-scripts/fnsince.pl | 60 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/build-scripts/fnsince.pl b/build-scripts/fnsince.pl index 30a1d514b..02574628a 100755 --- a/build-scripts/fnsince.pl +++ b/build-scripts/fnsince.pl @@ -3,6 +3,12 @@ use warnings; use strict; use File::Basename; +use Cwd qw(abs_path); + +my $wikipath = undef; +foreach (@ARGV) { + $wikipath = abs_path($_), next if not defined $wikipath; +} chdir(dirname(__FILE__)); chdir('..'); @@ -101,3 +107,57 @@ foreach my $release (@releases) { } } +if (defined $wikipath) { + chdir($wikipath); + foreach my $fn (keys %funcs) { + my $revision = $funcs{$fn}; + $revision = 'git HEAD (in development, not in an official release yet)' if $revision eq 'HEAD'; + my $fname = "$fn.mediawiki"; + if ( ! -f $fname ) { + #print STDERR "No such file: $fname\n"; + next; + } + + my @lines = (); + open(FH, '<', $fname) or die("Can't open $fname for read: $!\n"); + my $added = 0; + while () { + chomp; + if ((/\A\-\-\-\-/) && (!$added)) { + push @lines, "== Version =="; + push @lines, ""; + push @lines, "This function is available since SDL $revision."; + push @lines, ""; + $added = 1; + } + push @lines, $_; + next if not /\A\=\=\s+Version\s+\=\=/; + $added = 1; + push @lines, ""; + push @lines, "This function is available since SDL $revision."; + push @lines, ""; + while () { + chomp; + next if not (/\A\=\=\s+/ || /\A\-\-\-\-/); + push @lines, $_; + last; + } + } + close(FH); + + if (!$added) { + push @lines, "== Version =="; + push @lines, ""; + push @lines, "This function is available since SDL $revision."; + push @lines, ""; + } + + open(FH, '>', $fname) or die("Can't open $fname for write: $!\n"); + foreach (@lines) { + print FH "$_\n"; + } + close(FH); + } +} + +