Another attempt at #4516
Adds a small fix for tag map generation
#4516 introduces build failures, but testing indicates that those failures would have been resolved by a full rebuild.
Hence this pr.
Co-authored-by: Darragh Elliott <me@delliott.xyz>
Reviewed-on: #4553
Co-authored-by: delliott <delliott@fsfe.org>
Co-committed-by: delliott <delliott@fsfe.org>
This pr re-formats the build scripts for legibility.
Makes some small tweaks, mainly removing options that don't appear to be used and have no impact.
Updates the help file to be more useful and actually represent all arguments.
Adds the ability to specify languages when building. This is mainly useful for speedups, a full rebuild in just English and French takes only ~3 mins as opposed to 40 for a rebuild of all languages.
There may be some small tweaks not mentioned here, see the commit messages for full details.
This pr does not alter the output of a standard build at all, confirmed using `git diff --no-index`.
Co-authored-by: Darragh Elliott <me@delliott.xyz>
Reviewed-on: #4516
Co-authored-by: delliott <delliott@fsfe.org>
Co-committed-by: delliott <delliott@fsfe.org>
This is slightly more resource intensive per build, but also measn that the bewildering situation of changing files in the source tree alters the build/stage folder output without rebuilding.
Rsync means the impact should not be too large
It is always possible that the .git directory contains files which match
the pattern, for example if there is a branch called something ending in
.xhtml.
The new method also works for generated files (for example tag lists for
not-anymore-existent tags). The change is also a preparation for
possible replacements of generated Makefile sections into pattern rules.
After the build of a file has failed, remove the output file, so it is
retried at the next build again, even if the corresponding source has
not changed.
This change makes sure that the build script will stop if an XML parser
error occures, and the faulty build will not be propagated to the web
server. Please note that it requires switching all the shell scripts to
bash.