|
|
|
@ -98,20 +98,22 @@ if [ -z "${MYNAME#gosher}" ]; then |
|
|
|
|
[ "$STYLE" = "pipe" ] && { |
|
|
|
|
mkfifo -m 600 "$INF" |
|
|
|
|
# shellcheck disable=SC2050 |
|
|
|
|
while [ 1 -eq 1 ]; do |
|
|
|
|
while :; do |
|
|
|
|
# shellcheck disable=SC2094 |
|
|
|
|
${GOSHER_SERVE} "${GOPHERDIR}" \ |
|
|
|
|
"${HOSTNAME}" "${PORT}" <"$INF" |\ |
|
|
|
|
${NETCAT} -vvvvv -l "${HOSTNAME}" "${PORT}" >"$INF" |
|
|
|
|
sleep 1 |
|
|
|
|
done |
|
|
|
|
rm -f $INF |
|
|
|
|
exit 0 |
|
|
|
|
} |
|
|
|
|
[ "$STYLE" = 'fork' ] && { |
|
|
|
|
# shellcheck disable=SC2050 |
|
|
|
|
while [ 1 -eq 1 ]; do |
|
|
|
|
while :; do |
|
|
|
|
${NETCAT} -vv -l -p "$PORT" -c \ |
|
|
|
|
"${GOSHER_SERVE} ${GOPHERDIR} ${HOSTNAME} ${PORT}" |
|
|
|
|
sleep 1 |
|
|
|
|
done |
|
|
|
|
exit 0 |
|
|
|
|
} |
|
|
|
@ -153,27 +155,25 @@ serve_selector(){ |
|
|
|
|
exit 0 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### transform a .gph file into a gophermap |
|
|
|
|
## function |
|
|
|
|
serve_index(){ |
|
|
|
|
IDX=$1 |
|
|
|
|
IFS=' |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
echo "[$(date +%Y-%m-%d\ %H:%M:%S)|GPH|${IDX}|\"\"]" >&2 |
|
|
|
|
while read -r line; do |
|
|
|
|
rline=$(echo "$line" | tr -d '\r') |
|
|
|
|
case "$rline" in |
|
|
|
|
'['*) |
|
|
|
|
echo "$rline" | sed -r -e 's/\[//g;s/\]//g;s/\|/ /g;s/ //;s/$/\r/g' |
|
|
|
|
line=$(echo "$rline" | sed -r -e 's/\[//g;s/\]//g;s/\|/ /g;s/ / /;') |
|
|
|
|
;; |
|
|
|
|
t*) |
|
|
|
|
echo "$rline" | cut -c 2- |
|
|
|
|
line=$(echo "$rline" | cut -b 2-) |
|
|
|
|
;; |
|
|
|
|
*) |
|
|
|
|
echo "$line" |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
printf '%s\r\n' "$line" |
|
|
|
|
done < "$IDX" |
|
|
|
|
# shellcheck disable=SC1117 |
|
|
|
|
printf ".\r\n" |
|
|
|
@ -238,7 +238,6 @@ HOSTNAME=${2:-"localhost"} |
|
|
|
|
PORT=${3:-"70"} |
|
|
|
|
|
|
|
|
|
read -r selector |
|
|
|
|
|
|
|
|
|
selector=$(echo "$selector" | tr -d '\r' ) |
|
|
|
|
|
|
|
|
|
[ -n "$DEBUG" ] && { |
|
|
|
@ -249,7 +248,7 @@ selector=$(echo "$selector" | tr -d '\r' ) |
|
|
|
|
case "$selector" in |
|
|
|
|
URL:*) |
|
|
|
|
## it's a special URL selector |
|
|
|
|
url=$(echo "$selector" | cut -d ":" -f 2- | sed 's:^//::g') |
|
|
|
|
url=$(echo "$selector" | cut -d ":" -f 2-) |
|
|
|
|
serve_redirect "$url" |
|
|
|
|
;; |
|
|
|
|
/?*.cgi*) |
|
|
|
@ -257,11 +256,11 @@ case "$selector" in |
|
|
|
|
script_name=$(echo "$selector" | cut -d "?" -f 1) |
|
|
|
|
query_string=$(echo "$selector" | cut -d "?" -f 2) |
|
|
|
|
[ "${script_name}" = "${query_string}" ] && query_string="" |
|
|
|
|
RP1=$(readlink -f "${GOPHERDIR}""${script_name}" || "") |
|
|
|
|
RP1=$(readlink -f "${GOPHERDIR}""${script_name}") |
|
|
|
|
# shellcheck disable=SC2181 |
|
|
|
|
[ $? -eq 0 ] || invalid_selector "${selector}" |
|
|
|
|
RP2=$(readlink -f "${GOPHERDIR}")"${script_name}" |
|
|
|
|
RP2=$(echo "${RP2}" | sed -r 's/\/+/\//g') |
|
|
|
|
RP2=$(echo "${RP2}" | sed -r 's:/+:/:g') |
|
|
|
|
# shellcheck disable=SC2181 |
|
|
|
|
[ $? -eq 0 ] || invalid_selector "${selector}" |
|
|
|
|
[ -n "$DEBUG" ] && { |
|
|
|
@ -278,7 +277,7 @@ case "$selector" in |
|
|
|
|
;; |
|
|
|
|
/?*|"") |
|
|
|
|
## it's a regular selector |
|
|
|
|
RP1=$(readlink -f "${GOPHERDIR}"/"${selector}" || "") |
|
|
|
|
RP1=$(readlink -f "${GOPHERDIR}"/"${selector}") |
|
|
|
|
# shellcheck disable=SC2181 |
|
|
|
|
[ $? -eq 0 ] || invalid_selector "$selector" |
|
|
|
|
RP2=$(readlink -f "${GOPHERDIR}")"${selector}" |
|
|
|
@ -312,4 +311,3 @@ case "$selector" in |
|
|
|
|
invalid_selector "/" |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
|
|
|
|
|