diff --git a/config/master_example.sh b/config/master_example.sh index 17ede6f..8405090 100644 --- a/config/master_example.sh +++ b/config/master_example.sh @@ -21,9 +21,9 @@ cfg[ssl_cert]='' cfg[ssl_key]='' cfg[extension]='shs' -cfg[extra_headers]='server: HTTP.sh/0.95 (devel)' +cfg[extra_headers]='server: HTTP.sh/0.94 (devel)' -cfg[title]='HTTP.sh 0.95' +cfg[title]='HTTP.sh 0.94' cfg[php_enabled]=false # enable PHP script evalutaion (requires PHP) cfg[python_enabled]=false # enable Python script evalutaion (requires Python) diff --git a/http.sh b/http.sh index 25f8617..3da2573 100755 --- a/http.sh +++ b/http.sh @@ -27,9 +27,9 @@ cfg[ssl_cert]='' cfg[ssl_key]='' cfg[extension]='shs' -cfg[extra_headers]='server: HTTP.sh/0.95 (devel)' +cfg[extra_headers]='server: HTTP.sh/0.94 (devel)' -cfg[title]='HTTP.sh 0.95' +cfg[title]='HTTP.sh 0.94' cfg[php_enabled]=false # enable PHP script evalutaion (requires PHP) cfg[python_enabled]=false # enable Python script evalutaion (requires Python) diff --git a/src/template.sh b/src/template.sh index 60dd8a3..21555db 100755 --- a/src/template.sh +++ b/src/template.sh @@ -3,7 +3,7 @@ # render(array, template_file) function render() { - local template="$(cat "$2" | sed 's/\&/�UwU�/g')" + local template="$(cat "$2")" local -n ref=$1 local tmp=$(mktemp) for key in ${!ref[@]}; do @@ -11,40 +11,46 @@ function render() { local value='' subtemplate=$(mktemp) subtemplate_tmp=$(mktemp) - echo "$template" | sed 's/\&/�UwU�/g' | grep "{{start $key}}" -A99999 | grep "{{end $key}}" -B99999 | tr '\n' $'\01' > "$subtemplate" + echo "subtemplate: $subtemplate" > /dev/stderr + echo "subtemplate_tmp: $subtemplate_tmp" > /dev/stderr + echo "$template" | grep "{{start $key}}" -A99999 | grep "{{end $key}}" -B99999 > "$subtemplate" echo 's'$'\02''\{\{start '"$key"'\}\}.*\{\{end '"$key"'\}\}'$'\02''\{\{'"$key"'\}\}'$'\02'';' >> "$tmp" local -n asdf=${ref[$key]} + echo "asdf ${asdf[@]}" > /dev/stderr for j in ${!asdf[@]}; do local -n fdsa=_${asdf[$j]} for i in ${!fdsa[@]}; do - echo 's'$'\02''\{\{.'"$i"'\}\}'$'\02'''"${fdsa[$i]}"''$'\02''g;' | tr '\n' $'\01' | sed -E 's/'$'\02'';'$'\01''/'$'\02'';/g;s/'$'\02''g;'$'\01''/'$'\02''g;/g' >> "$subtemplate_tmp" + echo 's'$'\02''\{\{.'"$i"'\}\}'$'\02'''"${fdsa[$i]}"''$'\02'';' | tr -d '\n' >> "$subtemplate_tmp" done echo 's'$'\02''\{\{start '"$key"'\}\}'$'\02'$'\02' >> "$subtemplate_tmp" echo 's'$'\02''\{\{end '"$key"'\}\}'$'\02'$'\02' >> "$subtemplate_tmp" - value+="$(cat "$subtemplate" | tr '\n' $'\01' | sed -E -f "$subtemplate_tmp" | tr $'\01' '\n')" - # rm "$subtemplate_tmp" + value+="$(cat "$subtemplate" | tr -d '\n' | sed -E -f "$subtemplate_tmp" | tr $'\01' '\n' | sed 's/'$'\01''/\n/g')" + echo "eeeee $value" > /dev/stderr + rm "$subtemplate_tmp" done + echo 's'$'\02''\{\{'"$key"'\}\}'$'\02'''"$value"''$'\02'';' >> "$tmp" - #rm "$subtemplate" + cat "$tmp" > /dev/stderr + rm "$subtemplate" elif [[ "${ref[$key]}" != "" ]]; then local value="$(html_encode "${ref[$key]}" | sed -E 's/\&/�UwU�/g')" - echo 's'$'\02''\{\{\.'"$key"'\}\}'$'\02'''"$value"''$'\02''g;' >> "$tmp" + echo 's'$'\02''\{\{\.'"$key"'\}\}'$'\02'''"$value"''$'\02'';' >> "$tmp" else - echo 's'$'\02''\{\{\.'"$key"'\}\}'$'\02'$'\02''g;' >> "$tmp" + echo 's'$'\02''\{\{\.'"$key"'\}\}'$'\02'$'\02'';' >> "$tmp" fi done - cat "$tmp" | tr '\n' $'\01' | sed -E 's/'$'\02'';'$'\01''/'$'\02'';/g;s/'$'\02''g;'$'\01''/'$'\02''g;/g' > "${tmp}_" + cat "$tmp" | tr -d '\n' > "${tmp}_" template="$(tr '\n' $'\01' <<< "$template" | sed -E -f "${tmp}_" | tr $'\01' '\n')" sed -E 's/�UwU�/\&/g' <<< "$template" - #rm "$tmp" + rm "$tmp" } # render_unsafe(array, template_file) @@ -86,14 +92,7 @@ function nested_declare() { # nested_add(ref, array) function nested_add() { local nested_id=$(_nested_random) - declare -n nested_ref=$2 - declare -g -A _$nested_id - - # poor man's array copy - for i in ${!nested_ref[@]}; do - declare -g -A _$nested_id[$i]="${nested_ref[$i]}" - done - + declare -g -n _$nested_id=$2 local -n ref=$1 ref+=("$nested_id") }