#!/bin/bash _help() { echo "Pass arguments to create a static version of the index, printed on stdout Templating will replace config values config.style and config.source to null -l [links.txt] Path to links.txt. must be passed -c [config.js] *Path to configuration js replacing config values -s [styles.css] *Path to extra styles * can be left out " exit } _checkenv() { if [[ ! -e "$LINKS" ]]; then echo "Links file '$LINKS' not found." _help exit 1 fi if [[ -n "$CONFIG" ]]; then if [[ ! -e "$CONFIG" ]]; then echo "Config file '$CONFIG' not found." exit 1 fi fi if [[ -n "$STYLE" ]]; then if [[ ! -e "$STYLE" ]]; then echo "Styles file '$STYLE' not found." exit 1 fi fi echo " Links file: $LINKS Config file: $CONFIG Style file: $STYLE " >&2 } _replace_links() { if [[ -e "$LINKS" ]]; then sed \ -e '/TEMPLATED:LINKS/a config.source=null;' \ -e '/TEMPLATED:LINKS/a config.links=`' \ -e "/TEMPLATED:LINKS/r $LINKS" \ -e '/TEMPLATED:LINKS/a `;' #-e "/TEMPLATED:LINKS/d" else cat - fi } _replace_config() { if [[ -e "$CONFIG" ]]; then sed \ -e "/TEMPLATED:CONFIG/r $CONFIG" \ -e "/^.script language.*config.js.*script.*/d" #-e "/TEMPLATED:CONFIG/d" else cat - fi } _replace_style() { if [[ -e "$STYLE" ]]; then sed \ -e "/TEMPLATED:STYLE/r $STYLE" \ -e '/TEMPLATED:CONFIG/a config.style=null;' \ #-e "/TEMPLATED:STYLE/d" else cat - fi } _replace() { cat index.html | _replace_links | _replace_config | _replace_style } CONFIG= STYLE= LINKS= for (( i=1; i<=$#; i++ )); do j=$(( i + 1 )) [[ "${!i}" = "-h" ]] && _help [[ "${!i}" = "--help" ]] && _help [[ "${!i}" = "-l" ]] && { LINKS="${!j}"; shift 1; continue; } [[ "${!i}" = "-c" ]] && { CONFIG="${!j}"; shift 1; continue; } [[ "${!i}" = "-s" ]] && { STYLE="${!j}"; shift 1; continue; } done _checkenv _replace