From 1621427cd6c461dd232359901c3774df54430ed5 Mon Sep 17 00:00:00 2001 From: Philipp Schafft Date: Mon, 1 May 2017 16:09:52 +0000 Subject: Update: Totally reworked how templates to build are selected --- webgen | 116 ++++++++++++++++++++++++++++++----------------------------------- 1 file changed, 53 insertions(+), 63 deletions(-) (limited to 'webgen') diff --git a/webgen b/webgen index d0908b5..99af7f7 100755 --- a/webgen +++ b/webgen @@ -46,6 +46,7 @@ PAGE_SUFFIX='.html' DEFAULT_MENU='-menu-none' PREPROCESSOR='none' LANGUAGE='' +TEMPLATES='' # CODE: setup() { @@ -213,10 +214,6 @@ show_help() { echo " or: webgen --help" } -TEMPLATES_PAGE="*" -TEMPLATES_DYN="*" -TEMPLATES_RAW="*" - while [ ! -z "$1" ] do case "$1" in @@ -259,60 +256,8 @@ do echo "Error: Unknown option: $1" >&2 exit 1 ;; - '+') - TEMPLATES_PAGE="*" - TEMPLATES_DYN="NO-TEMPLATES" - TEMPLATES_RAW="NO-TEMPLATES" - ;; - '~') - TEMPLATES_PAGE="NO-TEMPLATES" - TEMPLATES_DYN="*" - TEMPLATES_RAW="NO-TEMPLATES" - ;; - '=') - TEMPLATES_PAGE="NO-TEMPLATES" - TEMPLATES_DYN="NO-TEMPLATES" - TEMPLATES_RAW="*" - ;; - '+'*) - TEMPLATES_PAGE=`echo "$1" | sed s/^.//` - TEMPLATES_DYN="NO-TEMPLATES" - TEMPLATES_RAW="NO-TEMPLATES" - ;; - '~'*) - TEMPLATES_PAGE="NO-TEMPLATES" - TEMPLATES_DYN=`echo "$1" | sed s/^.//` - TEMPLATES_RAW="NO-TEMPLATES" - ;; - '='*) - TEMPLATES_PAGE="NO-TEMPLATES" - TEMPLATES_DYN="NO-TEMPLATES" - TEMPLATES_RAW=`echo "$1" | sed s/^.//` - ;; - *'.'*'.html') - _mask=`echo "$1" | cut -d. -f1` - _lang=`echo "$1" | cut -d. -f2` - _tpl=`ls -1 -- "$TPLS"/?"$_mask.$_lang" 2> /dev/null` - if [ -n "$_tpl" ] - then - _mask=`echo "$_tpl" | sed 's#^[^/]*//*.##'` - _lang='' - fi - [ "$LANGUAGE" = '' ] && LANGUAGE="$_lang" - TEMPLATES_PAGE="$_mask" - TEMPLATES_DYN="$_mask" - TEMPLATES_RAW="$_mask" - ;; - *'.html') - _mask=`echo "$1" | cut -d. -f1` - TEMPLATES_PAGE="$_mask" - TEMPLATES_DYN="$_mask" - TEMPLATES_RAW="$_mask" - ;; *) - TEMPLATES_PAGE="$1" - TEMPLATES_DYN="$1" - TEMPLATES_RAW="$1" + TEMPLATES="$TEMPLATES $1" ;; esac shift @@ -441,14 +386,59 @@ proc_raw() { cat_file $_tpl > "$OF" } -for i in +$TEMPLATES_PAGE \~$TEMPLATES_DYN -do - [ -f "./$i" ] && proc_page "$i" -done +proc() { + _mode="$1" + shift; -for i in =$TEMPLATES_RAW + _old_lang="$LANGUAGE" + + for x in "$@" + do + if [ -f "$x" ] + then + x=`echo "$x" | sed 's#^\./##'` + case "$x" in + *.*) + LANGUAGE=`echo "$x" | cut -d. -f2` + x=`echo "$x" | cut -d. -f1` + ;; + esac + proc_$_mode "$x" + LANGUAGE="$_old_lang" + fi + done +} + +if [ -z "$TEMPLATES" ] +then + TEMPLATES="+ ~ =" +fi + +for i in $TEMPLATES do - [ -f "./$i" ] && proc_raw "$i" + case "$i" in + '+'|'~') + proc page ./"$i"* + ;; + '=') + proc raw ./"$i"* + ;; + '+'*|'~'*) + proc page ./$i + ;; + '='*) + proc raw ./$i + ;; + *'.html') + _mask=`echo "$i" | sed 's/\.html$//'` + proc page ./[\+\~]"$_mask" + proc page ./[=]"$_mask" + ;; + *) + proc page ./[\+\~]$i + proc raw ./[=]$i + ;; + esac done exit 0; -- cgit v1.2.3