Parcourir la source

merge in support for nightly triggers and local menus

svn path=/trunk/; revision=32215
tags/stw2018
paul il y a 4 ans
Parent
révision
16e7ff8d93

+ 3
- 10
Makefile Voir le fichier

@@ -30,18 +30,11 @@ sources := $(shell grep -l -R --include='*.xhtml' $(SELECT) . )

.PHONY: localmenus

localmenus: localmenuinfo.xml
localmenus: localmenuinfo.en.xml

$(HELPERFILE) :
rm -f $(HELPERFILE)
localmenuinfo.en.xml: $(sources)
echo \<localmenuset\> > $(HELPERFILE)
grep -R --include='*.xhtml' $(SELECT) .| sed -e 's,$(FIND),$(REPLACE),' >> $(HELPERFILE)
echo \</localmenuset\> >> $(HELPERFILE)

localmenuinfo.xml: $(HELPERFILE) $(sources)
xsltproc -o $@ $(STYLESHEET) $(HELPERFILE)
rm -f $(HELPERFILE)

%.html : %.xhtml $(HELPERFILE)
perl tools/bogus-build.pl $< | xsltproc -o $@ fsfeurope.xsl -

rm $(HELPERFILE)

+ 11
- 2
build/HELP Voir le fichier

@@ -3,8 +3,8 @@ Usage:
------------------------------------------------------------------------------

build_main.sh [options] build_into "destination_dir"
Perform the page build. Write output to destination_dir. The source directory
is determined from the build scripts own location.
Perform the page build. Write output to destination_dir. The source
directory is determined from the build scripts own location.

build_main.sh [options] build_xmlstream "file.xhtml"
Compile an xml stream from the specified file, additional sources will be
@@ -24,6 +24,15 @@ build_main.sh [options] tree_maker [input_dir] "destination_dir"
Note: if destination_dir is set via previous options, and only one paramter
is given, then this parameter will be interpreted as input_dir

build_main.sh [options] wakeup_news [date]
News items that are in the future at the time of their commit are not
considered for the content of dependent files (e.g. news.html, index.html).
This function performs a `touch` on all files which are to be released at
the presented date, thus forcing a subsequent buildrun to rebuild dependent
files even though the input files may not have changed their content.
The date option defaults to the present date, if given it must adhere to
the form YYYY-MM-DD.

OPTIONS
-------


+ 9
- 3
build/arguments.sh Voir le fichier

@@ -4,7 +4,7 @@

if [ -z "$inc_arguments" ]; then
inc_arguments=true
basedir="$(realpath "$(dirname "$0")/..")"
basedir="$(realpath "${0%/*}/..")"

while [ "$#" -gt 0 ]; do
case "$1" in
@@ -72,6 +72,10 @@ if [ -z "$inc_arguments" ]; then
[ "$#" -gt 0 ] && shift 1 && globfile="$1"
[ "$#" -gt 0 ] && shift 1 && reffile="$1"
;;
wakeup_news)
command="$1$command"
[ "$#" -gt 0 ] && shift 1 && today="$1"
;;
*)
print_error "Unknown option: $1"
exit 1
@@ -82,7 +86,8 @@ if [ -z "$inc_arguments" ]; then
olang="${olang:-en}"
tree="${tree:-$basedir}"
stagedir=${stagedir:-$target}
stagedir="${stagedir:-$target}"
today="${today:-$(date +%F)}"
readonly tree="${tree:+$(realpath "$tree")}"
readonly stagedir="${stagedir:+$(realpath "$stagedir")}"
readonly basedir="${basedir:+$(realpath "$basedir")}"
@@ -98,8 +103,9 @@ if [ -z "$inc_arguments" ]; then
tree_maker) [ -z "$target" ] && die "Missing target location" ;;
sourceglobs) [ -z "$sourcesfile" ] && die "Missing .sources file" ;;
lang_sources) [ -z "$sourceglobfile" -o -z "$lang" ] && die "Need source globfile and language" ;;
cast_refglobs) [ -z "$globfile" -o -z "$reffile" ] && die "Need globfile and reffile" ;;
cast_refglobs) [ -z "$globfile" -o -z "$reffile" ] && die "Need globfile and reffile" ;;
map_tags) true;;
wakeup_news) true;;
*help*) print_help; exit 0 ;;
*) die "Urecognised command or no command given" ;;
esac

+ 3
- 1
build/build_main.sh Voir le fichier

@@ -1,6 +1,6 @@
#!/bin/sh

basedir="$(dirname "$0")/.."
basedir="${0%/*}/.."
[ -z "$inc_misc" ] && . "$basedir/build/misc.sh"
readonly start_time="$(date +%s)"

@@ -32,6 +32,7 @@ fi
[ -z "$inc_processor" ] && . "$basedir/build/processor.sh"
[ -z "$inc_scaffold" ] && . "$basedir/build/scaffold.sh"
[ -z "$inc_sources" ] && . "$basedir/build/sources.sh"
[ -z "$inc_stirrups" ] && . "$basedir/build/stirrups.sh"

case "$command" in
map_tags) map_tags "$@";;
@@ -43,4 +44,5 @@ case "$command" in
sourceglobs) sourceglobs "$sourcesfile" ;;
lang_sources) lang_sources "$sourceglobfile" "$lang" ;;
cast_refglobs) cast_refglobs "$globfile" "$reffile" ;;
wakeup_news) wakeup_news "$today" ;;
esac

+ 2
- 3
build/filenames.sh Voir le fichier

@@ -36,15 +36,14 @@ get_processor(){
# a given xhtml file.
# expects the shortname of the file as input (i.e. the
# the file path without language and file endings)
shortname="$1"
if [ -f "${shortname}.xsl" ]; then
echo "${shortname}.xsl"
else
location="$(dirname "$shortname")"
location="${shortname%/*}"
until [ -f "$location/default.xsl" -o "$location" = . -o "$location" = / ]; do
location="$(dirname "$location")"
location="${location%/*}"
done
echo "$location/default.xsl"
fi

+ 19
- 19
build/makerules.sh Voir le fichier

@@ -36,12 +36,14 @@ glob_maker(){
# issue make rules for preglobbed sources files
sourcesfile="$1"

filedir="\${INPUTDIR}/$(dirname "$sourcesfile")"
shortbase="$(basename "$sourcesfile" |sed -r 's;\.sources$;;')"
filedir="\${INPUTDIR}/${sourcesfile}"
filedir="${filedir%/*}"
shortbase="${sourcesfile##*/}"
shortbase="${shortbase%.sources}"

for lang in $(get_languages); do
globfile="${filedir%/.}/._._${shortbase}.${lang}.sourceglobs"
refglobs="${filedir%/.}/._._${shortbase}.${lang}.refglobs"
globfile="${filedir}/._._${shortbase}.${lang}.sourceglobs"
refglobs="${filedir}/._._${shortbase}.${lang}.refglobs"
cat <<MakeEND
$(mes "$globfile"): $(mes "\${INPUTDIR}/tagmap" "\${INPUTDIR}/$sourcesfile")
\${PGLOBBER} \${PROCFLAGS} lang_sources "\${INPUTDIR}/$sourcesfile" "$lang" >"$globfile"
@@ -75,12 +77,12 @@ xhtml_maker(){

shortname="$input/$1"
outpath="\${OUTPUTDIR}/${2}"
outpath="${outpath%/.}"
outpath="${outpath%/*}"

textsen="$(get_textsfile "en")"
menufile="$basedir/tools/menu-global.xml"
filedir="$(dirname "$shortname")"
shortbase="$(basename "$shortname")"
filedir="${shortname%/*}"
shortbase="${shortname##*/}"
processor="$(get_processor "$shortname")"

langglob="$filedir/._._${shortbase}.langglob"
@@ -91,7 +93,7 @@ xhtml_maker(){

olang="$(echo "${shortname}".[a-z][a-z].xhtml "${shortname}".[e]n.xhtml |sed -rn 's;^.*\.([a-z]{2})\.xhtml.*$;\1;p')"

if [ "${shortbase}" = "$(basename "$filedir")" ] && \
if [ "${shortbase}" = "${filedir##*/}" ] && \
[ ! -f "${filedir}/index.${olang}.xhtml" ]; then
bool_indexname=true
else
@@ -149,7 +151,7 @@ xhtml_makers(){
| sed -r 's;\.[a-z][a-z]\.xhtml$;;' \
| sort -u \
| while read shortpath; do
xhtml_maker "$shortpath" "$(dirname "$shortpath")"
xhtml_maker "$shortpath" "${shortpath}"
done
}

@@ -159,16 +161,14 @@ xhtml_additions(){
| sort -u \
| xargs realpath \
| while read addition; do
xhtml_maker "${addition#$input/}" "$(dirname "${addition#$input/}")"
xhtml_maker "${addition#$input/}" "${addition#$input/}"
done
}

copy_maker(){
# generate make rule for copying a plain file
infile="\${INPUTDIR}/$1"
outpath="\${OUTPUTDIR}/${2}"
outpath="${outpath%/.}"
outfile="$outpath/$(basename "$infile")"
outfile="\${OUTPUTDIR}/$2"

cat <<MakeEND
all: $(mes "$outfile")
@@ -183,7 +183,7 @@ copy_makers(){
\! -name '*.sources' \! -name '*.xhtml' \! -name '*.xml' \
\! -name '*.xsl' \! -name 'tagmap' \! -name '*.langglob' \
| while read filepath; do
copy_maker "$filepath" "$(dirname "$filepath")"
copy_maker "$filepath" "$filepath"
done
}

@@ -192,7 +192,7 @@ copy_additions(){
| egrep -v '.+(\.sources|\.sourceglobs|\.refglobs|\.xhtml|\.xml|\.xsl|/Makefile|/)$' \
| xargs realpath \
| while read addition; do
copy_maker "${addition#$input/}" "$(dirname "${addition#$input/}")"
copy_maker "${addition#$input/}" "${addition#$input/}"
done
}

@@ -213,7 +213,7 @@ xslt_maker(){
# Make dependencies accordingly

file="$input/$1"
dir="$(dirname "$file")"
dir="${file%/*}"

deps="$( xslt_dependencies "$file" |xargs -I'{}' realpath "$dir/{}" )"
cat <<MakeEND
@@ -244,7 +244,7 @@ copy_sources(){
# the public source directory
sourcefind -name '*.xhtml' \
| while read filepath; do
copy_maker "$filepath" "source/$(dirname "$filepath")"
copy_maker "$filepath" "source/$filepath"
done
}

@@ -253,7 +253,7 @@ copy_sourceadditions(){
| egrep '.+\.xhtml$' \
| xargs realpath \
| while read addition; do
copy_maker "${addition#$input/}" "source/$(dirname "${addition#$input/}")"
copy_maker "${addition#$input/}" "source/${addition#$input/}"
done
}

@@ -285,7 +285,7 @@ MakeHead
forcelog Make_sourcecopy; Make_sourcecopy="$(logname Make_sourcecopy)"
Make_xhtml="$(logname Make_xhtml)"

trap "trap - 0 2 3 6 9 15; killall \"$(basename "$0")\"" 0 2 3 6 9 15
trap "trap - 0 2 3 6 9 15; killall \"${0##*/}\"" 0 2 3 6 9 15

[ "$regen_globs" = false -a -s "$Make_globs" ] && \
glob_additions "$@" >>"$Make_globs" \

+ 1
- 1
build/process_file.sh Voir le fichier

@@ -1,6 +1,6 @@
#!/bin/sh

basedir="$(dirname $0)/.."
basedir="${0%/*}/.."
[ -z "$inc_processor" ] && . "$basedir/build/processor.sh"

. "$basedir/build/arguments.sh"

+ 3
- 3
build/scaffold.sh Voir le fichier

@@ -15,7 +15,7 @@ build_xmlstream(){
lang="$2"
olang="$3"

dirname="$(dirname "$shortname")"
dirname="${shortname%/*}/"
texts_xml=$(get_textsfile $lang)
fundraising_xml=$(get_fundraisingfile $lang)
date="$(date +%Y-%m-%d)"
@@ -35,8 +35,8 @@ build_xmlstream(){
<buildinfo
date="$date"
original="$olang"
filename="${shortname#$basedir}"
dirname="${dirname#$basedir}"
filename="${shortname#$basedir/}"
dirname="${dirname#$basedir/}"
language="$lang"
outdated="$outdated"
>

+ 1
- 1
build/source_globber.sh Voir le fichier

@@ -1,6 +1,6 @@
#!/bin/sh

basedir="$(dirname $0)/.."
basedir="${0%/*}/.."
[ -z "$inc_sources" ] && . "$basedir/build/sources.sh"

. "$basedir/build/arguments.sh"

+ 10
- 0
build/stirrups.sh Voir le fichier

@@ -59,3 +59,13 @@ remove_orphans(){
rm -v "$dtree/$file"
done
}

wakeup_news(){
# Performs a `touch` on all files which are to be released at the
# presented date.
today="$1"

find "$basedir" -name '*.xml' \
| xargs egrep -l "<[^>]+ date=[\"']${today}[\"'][^>]*>" \
| xargs touch -c 2>&- || true
}

+ 47
- 54
build/xslt/fsfe_localmenu.xsl Voir le fichier

@@ -4,71 +4,64 @@

<!-- Insert local menu -->
<xsl:template match="localmenu">

<xsl:variable name="set">
<xsl:choose>
<xsl:when test="@set">
<xsl:value-of select="@set"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>0</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:choose><xsl:when test="@set">
<xsl:value-of select="@set"/>
</xsl:when><xsl:otherwise>
<xsl:text>0</xsl:text>
</xsl:otherwise></xsl:choose>
</xsl:variable>

<xsl:variable name="dir">
<xsl:value-of select="/buildinfo/@dirname"/>
</xsl:variable>

<xsl:variable name="language">
<xsl:value-of select="/buildinfo/@language"/>
</xsl:variable>

<xsl:element name="div">
<xsl:attribute name="class">localmenu</xsl:attribute>
<xsl:element name="p">
<xsl:text>[ </xsl:text>
<xsl:for-each select="/buildinfo/localmenuset/localmenuitems/menu[@dir=$dir and @set=$set]">
<xsl:sort select="@id"/>
<xsl:variable name="style"><xsl:value-of select="@style"/></xsl:variable>
<xsl:variable name="id"><xsl:value-of select="@id"/></xsl:variable>
<xsl:variable name="localmenutext">
<xsl:choose>
<xsl:when
test="/buildinfo/localmenuset/translate/lang_part[@dir=$dir and @id=$id and @language=$language]">
<xsl:value-of
select="/buildinfo/localmenuset/translate/lang_part[@dir=$dir and @id=$id and @language=$language]"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of
select="/buildinfo/localmenuset/translate/lang_part[@dir=$dir and @id=$id and @language='en']"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:element name="span">
<xsl:attribute name="class">local_menu_item</xsl:attribute>
<xsl:choose>
<xsl:when test="not(substring-before(concat(/buildinfo/@filename ,'.html'), string(.)))">
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="."/></xsl:attribute>
<xsl:value-of select="$localmenutext"/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="href">bamboo</xsl:attribute>
<xsl:value-of select="$localmenutext"/>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
<xsl:if test="position()!=last()">
<xsl:choose>
<xsl:when test="$style='number'">
<xsl:text> | </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text> ] [ </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:for-each>
<xsl:text> ]</xsl:text>
<xsl:text>[ </xsl:text>

<xsl:for-each select="/buildinfo/document/set/localmenuitems/menu[@dir=$dir and @set=$set]">
<xsl:sort select="@id"/>

<xsl:variable name="style"><xsl:value-of select="@style"/></xsl:variable>
<xsl:variable name="id"><xsl:value-of select="@id"/></xsl:variable>
<xsl:variable name="localmenutext">
<xsl:choose><xsl:when test="/buildinfo/document/set/translate/lang_part[@dir=$dir and @id=$id and @language=$language]">
<xsl:value-of select="/buildinfo/document/set/translate/lang_part[@dir=$dir and @id=$id and @language=$language]"/>
</xsl:when><xsl:otherwise>
<xsl:value-of select="/buildinfo/document/set/translate/lang_part[@dir=$dir and @id=$id and @language='en']"/>
</xsl:otherwise></xsl:choose>
</xsl:variable>

<xsl:element name="span">
<xsl:attribute name="class">local_menu_item</xsl:attribute>
<xsl:choose> <xsl:when test="not(substring-before(concat(/buildinfo/@filename ,'.html'), string(.)))">
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="."/></xsl:attribute>
<xsl:value-of select="$localmenutext"/>
</xsl:element>
</xsl:when><xsl:otherwise>
<xsl:attribute name="href">bamboo</xsl:attribute>
<xsl:value-of select="$localmenutext"/>
</xsl:otherwise></xsl:choose>
</xsl:element>

<xsl:if test="position()!=last()">
<xsl:choose><xsl:when test="$style='number'">
<xsl:text> | </xsl:text>
</xsl:when><xsl:otherwise>
<xsl:text> ] [ </xsl:text>
</xsl:otherwise></xsl:choose>
</xsl:if>
</xsl:for-each>

<xsl:text> ]</xsl:text>
</xsl:element><!--end wrapper-->
</xsl:element>
</xsl:template>

+ 1
- 0
donate/thankgnus-2001.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2001:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus-2002.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2002:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus-2003.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2003:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus-2004.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2004:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus-2005.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2005:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus-2006.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2006:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus-2007.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2007:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus-2008.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2008:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus-2009.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2009:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus-2010.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2010:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus-2011.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2011:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus-2012.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2012:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus-2013.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2013:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus-2014.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2014:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus-2015.sources Voir le fichier

@@ -1 +1,2 @@
donate/donors/donors-2015:[]
localmenuinfo:[]

+ 1
- 0
donate/thankgnus.sources Voir le fichier

@@ -1,2 +1,3 @@
donate/donors/donors-2014:[]
donate/donors/donors-2015:[]
localmenuinfo:[]

Chargement…
Annuler
Enregistrer