From 61e711178455dbd0ec8f78d15791b7e25fbf7156 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Wed, 20 Sep 2017 10:22:28 +0100 Subject: [PATCH] Build test HTML wrapper pages for the Javascript puzzles. This should make it less annoying for me to do local testing of the JS output of a build, before I push a change. There's a new build.out/jstest directory containing .html files suitable for loading in a local browser, which refer to the JS files via an appropriate relative path to the existing build.out/js directory. --- Buildscr | 11 +++++++++++ html/jspage.pl | 13 ++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/Buildscr b/Buildscr index d661502..b8a585b 100644 --- a/Buildscr +++ b/Buildscr @@ -158,6 +158,16 @@ delegate emscripten return puzzles/js/*.js enddelegate +# Build a set of wrapping HTML pages for easy testing of the +# Javascript puzzles. These aren't quite the same as the versions that +# will go on my live website, because those ones will substitute in a +# different footer, and not have to link to the .js files with the +# ../js/ prefix. But these ones should be good enough to just open +# using a file:// URL in a browser after running a build, and make +# sure the main functionality works. +in puzzles do mkdir jstest +in puzzles/jstest do ../html/jspage.pl --jspath=../js/ /dev/null ../html/*.html + # Set up .htaccess containing a redirect for the archive filename. in puzzles do echo "AddType application/octet-stream .chm" > .htaccess in puzzles do echo "AddType application/octet-stream .hlp" >> .htaccess @@ -179,6 +189,7 @@ deliver puzzles/puzzles.zip $@ deliver puzzles/puzzles.msi puzzles-$(Version)-installer.msi deliver puzzles/*.jar java/$@ deliver puzzles/js/*.js js/$@ +deliver puzzles/jstest/*.html jstest/$@ deliver puzzles/html/*.html html/$@ deliver puzzles/html/*.pl html/$@ deliver puzzles/wwwspans.html $@ diff --git a/html/jspage.pl b/html/jspage.pl index 37eea30..b409783 100755 --- a/html/jspage.pl +++ b/html/jspage.pl @@ -3,6 +3,17 @@ use strict; use warnings; +my $jspath = ""; +while ($ARGV[0] =~ /^-/) { + my $opt = shift @ARGV; + last if $opt eq "--"; + if ($opt =~ /^--jspath=(.+)$/) { + $jspath = $1; + } else { + die "jspage.pl: unrecognised option '$opt'\n"; + } +} + open my $footerfile, "<", shift @ARGV or die "footer: open: $!\n"; my $footer = ""; $footer .= $_ while <$footerfile>; @@ -62,7 +73,7 @@ EOF ${puzzlename}, ${unfinishedtitlefragment}from Simon Tatham's Portable Puzzle Collection - +