summaryrefslogtreecommitdiff
path: root/webgen
diff options
context:
space:
mode:
authorPhilipp Schafft <lion@lion.leolix.org>2017-05-01 16:09:52 +0000
committerPhilipp Schafft <lion@lion.leolix.org>2017-05-01 16:12:30 +0000
commit1621427cd6c461dd232359901c3774df54430ed5 (patch)
tree303b378f74a9b897caeab9e3ec1bb0bf00d200ed /webgen
parent59fca8386f1d6982a404612a382d075ed43b993b (diff)
Update: Totally reworked how templates to build are selected
Diffstat (limited to 'webgen')
-rwxr-xr-xwebgen116
1 files changed, 53 insertions, 63 deletions
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;