summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Rameau <quinq@fifth.space>2019-01-24 12:25:31 +0100
committerKatolaZ <katolaz@freaknet.org>2019-01-24 12:09:10 +0000
commit6179fc6738adc18767f405ffb6713640cd7a5432 (patch)
treedf56a79842c9f5fb89ca7c8c69e0e13033cdc9be
parent5e28c047112d679261897741b64d96c84706ed89 (diff)
Arrange quoting, use printf, small fixes
-rwxr-xr-xgophed93
1 files changed, 45 insertions, 48 deletions
diff --git a/gophed b/gophed
index 11c6e88..2bb9b7e 100755
--- a/gophed
+++ b/gophed
@@ -1,81 +1,78 @@
#!/bin/sh
-PROMPT="=="
-SHOW="show"
+PROMPT='=='
+SHOW='show'
cleanup () {
- rm -f $TMPFILE;
+ rm -f "$TMPFILE";
}
go () {
- printf "${1}\r\n" | nc $2 $3
+ printf '%s\r\n' "$1" | nc "$2" "$3"
}
usage() {
- printf "usage: \n"
- printf " visit a resource:\n"
- printf " $0 <path> <server> <port>\n"
- printf " init links:\n"
- printf " $0 -i \n"
- printf " show this help:\n"
- printf " $0 -h\n"
- printf "\n"
- printf "In a gopher page, just type:\n"
- printf " !./g %% LINE\n"
- printf "to visit the resource at LINE, or:\n"
- printf " !./d %% LINE\n"
- printf "to download the resource at LINE\n\n"
+ printf '%s\n' \
+ 'usage:' \
+ ' visit a resource:' \
+ " $0 <path> <server> <port>" \
+ ' init links:' \
+ " $0 -i" \
+ ' show this help:' \
+ " $0 -h" \
+ '' \
+ 'In a gopher page, just type:' \
+ " !./g %% LINE" \
+ 'to visit the resource at LINE, or:' \
+ " !./d %% LINE" \
+ 'to download the resource at LINE\n'
exit 0
}
trap cleanup INT QUIT HUP KILL ABRT TERM
-if [ $# -lt 1 ]; then
- usage
-fi
-
-if [ "$1" = "-h" ]; then usage; fi
+[ "$#" -lt 1 ] || [ "$1" = -h ] && usage
-if [ "$0" = "gophed" -a "$1" = "-i" ]; then
- ln -sf $0 g
- ln -sf $0 d
- ln -sf $0 v
+if [ "$0" = gophed ] && [ "$1" = -i ]; then
+ ln -sf "$0" g
+ ln -sf "$0" d
+ ln -sf "$0" v
exit 0
fi
-script_name=$(basename $0)
+script_name="$(basename "$0")"
-if [ "${script_name}" = "gophed" -o "${script_name}" = "v" ]; then
- sel=$(echo $1 | sed -r 's:/:+:g')
- TMPFILE=$(mktemp /tmp/gophed_$2_${sel}_$3.XXXXXXXXXXXXXXXXXXX)
- go "$1" "$2" "$3" > $TMPFILE
- cat $SHOW - | ed -p ${PROMPT} $TMPFILE
+if [ "$script_name" = gophed ] || [ "$script_name" = v ]; then
+ sel="$(printf '%s' "$1" | sed -r 's:/:+:g')"
+ TMPFILE="$(mktemp "/tmp/gophed_${2}_${sel}_$3.XXXXXXXXXXXXXXXXXXX")"
+ go "$1" "$2" "$3" > "$TMPFILE"
+ cat "$SHOW" - | ed -p "$PROMPT" "$TMPFILE"
cleanup
exit 0
fi
-if [ ${script_name} = "g" -o ${script_name} = "d" ]; then
- LINE=$(awk "{if (NR == $2) print \$0;}" $1)
- RESOURCE=$(echo "$LINE" | cut -d ' ' -f 2)
- HOST=$(echo "$LINE" | cut -d ' ' -f 3)
- PORT=$(echo "$LINE" | awk -F ' ' '{ match($4,/[[:digit:]]+/); print substr($4,RSTART,RLENGTH) }')
+if [ "$script_name" = g ] || [ "$script_name" = d ]; then
+ LINE="$(awk "{if (NR == '$2') print '$0';}" "$1")"
+ RESOURCE="$(printf '%s' "$LINE" | cut -d ' ' -f 2)"
+ HOST="$(printf '%s' "$LINE" | cut -d ' ' -f 3)"
+ PORT="$(printf '%s' "$LINE" | awk -F ' ' '{ match($4,/[[:digit:]]+/); print substr($4,RSTART,RLENGTH) }')"
- if [ "${script_name}" = "g" ]; then
- SEL=$(echo $RESOURCE | sed -r 's:/:+:g')
- TMPFILE=$(mktemp /tmp/gophed_${HOST}_${SEL}_${PORT}.XXXXXXXXXXXXXXXXXXX)
- go "$RESOURCE" "$HOST" "$PORT" > $TMPFILE
- cat $SHOW - | ed -p ${PROMPT} $TMPFILE
+ if [ "$script_name" = g ]; then
+ SEL="$(printf '%s' "$RESOURCE" | sed -r 's:/:+:g')"
+ TMPFILE="$(mktemp "/tmp/gophed_${HOST}_${SEL}_$PORT.XXXXXXXXXXXXXXXXXXX")"
+ go "$RESOURCE" "$HOST" "$PORT" > "$TMPFILE"
+ cat "$SHOW" - | ed -p "$PROMPT" "$TMPFILE"
fi
- if [ "${script_name}" = "d" ]; then
- DIR_RESOURCE=$(dirname $RESOURCE)
- echo "Download $RESOURCE in ${HOST}${RESOURCE}"
- mkdir -p "$HOST/$DIR_RESOURCE"
- go "$RESOURCE" "$HOST" "$PORT" > "${HOST}${RESOURCE}"
+ if [ "$script_name" = d ]; then
+ DIR_RESOURCE="$(dirname "$RESOURCE")"
+ printf 'Download %s in %s\n' "$RESOURCE" "$HOST$RESOURCE"
+ mkdir -p "$HOST/$DIR_RESOURCE"
+ go "$RESOURCE" "$HOST" "$PORT" > "$HOST$RESOURCE"
fi
cleanup
exit 0
fi
-echo "${scriptname}: command not found"
+printf '%s: command not found\n' "$scriptname"
cleanup