65 lines
1.2 KiB
Bash
Executable File
65 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
set -euf
|
|
NL='
|
|
'
|
|
IFS="$NL"
|
|
POSIXLY_CORRECT=1
|
|
|
|
cd "$GIT_WORK_TREE"
|
|
|
|
while getopts :c OPT; do
|
|
case "$OPT" in
|
|
c) rm -rf ./build; exit 0 ;;
|
|
*) exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
KEYWORDS="$(ls -w 1 "./BUILDING-HTML/")"
|
|
|
|
# build dir structure
|
|
fd -E '/build' -E '/BUILDING-HTML' -t d -x mkdir -p build/{}
|
|
|
|
# copy files
|
|
fd -E '/build' -E '/BUILDING-HTML' -E 'LICENSE' -E 'build.sh' -t f -x cp {} build/{}
|
|
|
|
# first do html
|
|
for file in $(fd -t f -e html -d 1 . ".") ; do
|
|
file2="./build/${file##*/}"
|
|
tmp="$(cat "$file")"
|
|
for k in $KEYWORDS; do
|
|
case $k in
|
|
titlebar.html|head.html)
|
|
# grab var line
|
|
line="$(rg -e '\t*<!-- RES '"$k"' (.+) -->' -r '$1' <<-EOF
|
|
$tmp
|
|
EOF
|
|
)" || continue
|
|
# set params
|
|
IFS=":"
|
|
set -- $line
|
|
IFS=" $NL"
|
|
rep="$(cat "./BUILDING-HTML/$k")"
|
|
# replace vars
|
|
for j in $@; do
|
|
rep="$(sed -e "s/var-${j%%=*}/${j#*=}/g" <<-EOF
|
|
$rep
|
|
EOF
|
|
)"
|
|
done
|
|
# final replacement
|
|
tmp="$(sd "<!-- RES $k .+ -->" "${rep}" <<-EOF
|
|
$tmp
|
|
EOF
|
|
)"
|
|
;;
|
|
*)
|
|
tmp="$(sed -e "/<!-- RES $k -->/r ./BUILDING-HTML/$k" -e "//d" <<-EOF
|
|
$tmp
|
|
EOF
|
|
)"
|
|
;;
|
|
esac
|
|
done
|
|
printf '%s' "$tmp" > "$file2"
|
|
done
|