mirror of
https://git.sakamoto.pl/laudom/http.sh.git
synced 2026-01-05 00:41:15 +01:00
Compare commits
No commits in common. "c4d1de8015dc116fa86b6472885ad85e2158ce42" and "5851ccc10403bca63c6a5c1a6c01baee0f75341f" have entirely different histories.
c4d1de8015
...
5851ccc104
3 changed files with 11 additions and 82 deletions
|
|
@ -21,9 +21,9 @@ cfg[ssl_cert]=''
|
||||||
cfg[ssl_key]=''
|
cfg[ssl_key]=''
|
||||||
|
|
||||||
cfg[extension]='shs'
|
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[php_enabled]=false # enable PHP script evalutaion (requires PHP)
|
||||||
cfg[python_enabled]=false # enable Python script evalutaion (requires Python)
|
cfg[python_enabled]=false # enable Python script evalutaion (requires Python)
|
||||||
|
|
|
||||||
4
http.sh
4
http.sh
|
|
@ -27,9 +27,9 @@ cfg[ssl_cert]=''
|
||||||
cfg[ssl_key]=''
|
cfg[ssl_key]=''
|
||||||
|
|
||||||
cfg[extension]='shs'
|
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[php_enabled]=false # enable PHP script evalutaion (requires PHP)
|
||||||
cfg[python_enabled]=false # enable Python script evalutaion (requires Python)
|
cfg[python_enabled]=false # enable Python script evalutaion (requires Python)
|
||||||
|
|
|
||||||
|
|
@ -3,46 +3,18 @@
|
||||||
|
|
||||||
# render(array, template_file)
|
# render(array, template_file)
|
||||||
function render() {
|
function render() {
|
||||||
local template="$(cat "$2" | tr -d $'\01'$'\02' | sed 's/\&/<2F>UwU<77>/g')"
|
local template="$(cat "$2")"
|
||||||
local -n ref=$1
|
local -n ref=$1
|
||||||
local tmp=$(mktemp)
|
local tmp=$(mktemp)
|
||||||
for key in ${!ref[@]}; do
|
for key in ${!ref[@]}; do
|
||||||
if [[ "$key" == "_"* ]]; then # iter mode
|
if [[ "${ref[$key]}" != "" ]]; then
|
||||||
local value=''
|
|
||||||
subtemplate=$(mktemp)
|
|
||||||
subtemplate_tmp=$(mktemp)
|
|
||||||
echo "$template" | sed 's/\&/<2F>UwU<77>/g' | grep "{{start $key}}" -A99999 | grep "{{end $key}}" -B99999 | tr -d $'\01'$'\02' | tr '\n' $'\01' > "$subtemplate"
|
|
||||||
|
|
||||||
echo 's'$'\02''\{\{start '"$key"'\}\}.*\{\{end '"$key"'\}\}'$'\02''\{\{'"$key"'\}\}'$'\02'';' >> "$tmp"
|
|
||||||
|
|
||||||
local -n asdf=${ref[$key]}
|
|
||||||
|
|
||||||
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"
|
|
||||||
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"
|
|
||||||
done
|
|
||||||
|
|
||||||
echo 's'$'\02''\{\{'"$key"'\}\}'$'\02'''"$value"''$'\02'';' >> "$tmp"
|
|
||||||
rm "$subtemplate"
|
|
||||||
elif [[ "${ref[$key]}" != "" ]]; then
|
|
||||||
local value="$(html_encode "${ref[$key]}" | sed -E 's/\&/<2F>UwU<77>/g')"
|
local value="$(html_encode "${ref[$key]}" | sed -E 's/\&/<2F>UwU<77>/g')"
|
||||||
echo 's'$'\02''\{\{\.'"$key"'\}\}'$'\02'''"$value"''$'\02''g;' >> "$tmp"
|
echo 's/\{\{\.'"$key"'\}\}/'"$value"'/g' >> "$tmp"
|
||||||
else
|
else
|
||||||
echo 's'$'\02''\{\{\.'"$key"'\}\}'$'\02'$'\02''g;' >> "$tmp"
|
echo 's/\{\{\.'"$key"'\}\}//g' >> "$tmp"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
template="$(sed -E -f "$tmp" <<< "$template")"
|
||||||
cat "$tmp" | tr '\n' $'\01' | sed -E 's/'$'\02'';'$'\01''/'$'\02'';/g;s/'$'\02''g;'$'\01''/'$'\02''g;/g' > "${tmp}_"
|
|
||||||
template="$(tr '\n' $'\01' <<< "$template" | sed -E -f "${tmp}_" | tr $'\01' '\n')"
|
|
||||||
sed -E 's/<2F>UwU<77>/\&/g' <<< "$template"
|
sed -E 's/<2F>UwU<77>/\&/g' <<< "$template"
|
||||||
rm "$tmp"
|
rm "$tmp"
|
||||||
}
|
}
|
||||||
|
|
@ -53,53 +25,10 @@ function render_unsafe() {
|
||||||
local -n ref=$1
|
local -n ref=$1
|
||||||
local tmp=$(mktemp)
|
local tmp=$(mktemp)
|
||||||
for key in ${!ref[@]}; do
|
for key in ${!ref[@]}; do
|
||||||
if [[ "$key" == "_"* ]]; then # iter mode
|
local value="$(xxd -ps <<< "${ref[$key]}" | tr -d '\n' | sed -E 's/.{2}/\\x&/g')"
|
||||||
# grep "start _test" -A99999 | grep "end _test" -B99999
|
echo 's/\{\{\.'"$key"'\}\}/'"$value"'/g' >> "$tmp"
|
||||||
local -n item_array=${ref[$key]}
|
|
||||||
local value
|
|
||||||
for ((i = 0; i < ${#item_array[@]}; i++)); do
|
|
||||||
value+="$(xxd -ps <<< "${item_array[$i]}" | tr -d '\n' | sed -E 's/../\\x&/g')"
|
|
||||||
done
|
|
||||||
echo 's/\{\{'"$key"'\}\}/'"$value"'/g' >> "$tmp"
|
|
||||||
else
|
|
||||||
local value="$(xxd -ps <<< "${ref[$key]}" | tr -d '\n' | sed -E 's/../\\x&/g')"
|
|
||||||
echo 's/\{\{\.'"$key"'\}\}/'"$value"'/g' >> "$tmp"
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
sed -E -f "$tmp" <<< "$template"
|
sed -E -f "$tmp" <<< "$template"
|
||||||
rm "$tmp"
|
rm "$tmp"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# mmmm this should be a library because i am so much copying those later
|
|
||||||
# _nested_random
|
|
||||||
function _nested_random() {
|
|
||||||
dd if=/dev/urandom bs=1 count=16 status=none | xxd -p
|
|
||||||
}
|
|
||||||
|
|
||||||
# nested_declare(ref)
|
|
||||||
function nested_declare() {
|
|
||||||
declare -g -a $1
|
|
||||||
}
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
local -n ref=$1
|
|
||||||
ref+=("$nested_id")
|
|
||||||
}
|
|
||||||
|
|
||||||
# nested_get(ref, i)
|
|
||||||
function nested_get() {
|
|
||||||
local -n ref=$1
|
|
||||||
declare -g -n res=_${ref[$2]}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue