improved list2map.sh a bit
This commit is contained in:
+5
-1
@@ -21,6 +21,7 @@ typequery() { # external command wrapper to fetch the file's MIME type
|
|||||||
while read -rs fpath; do # fully line-based operation
|
while read -rs fpath; do # fully line-based operation
|
||||||
ftype="$(typequery "$fpath")" # MIME type here
|
ftype="$(typequery "$fpath")" # MIME type here
|
||||||
bname="${fpath##*/}" # basename here
|
bname="${fpath##*/}" # basename here
|
||||||
|
desc="$bname" # default to the basename
|
||||||
[[ "$bname" == "$INDEXFILE" ]] && continue # skip index map
|
[[ "$bname" == "$INDEXFILE" ]] && continue # skip index map
|
||||||
etype=9 # default map entry type is binary until proven otherwise
|
etype=9 # default map entry type is binary until proven otherwise
|
||||||
esel="${fpath##$RDIR}" # if RDIR is empty, they are the same
|
esel="${fpath##$RDIR}" # if RDIR is empty, they are the same
|
||||||
@@ -29,7 +30,10 @@ while read -rs fpath; do # fully line-based operation
|
|||||||
esel="${esel}/${INDEXFILE}" # update the selector
|
esel="${esel}/${INDEXFILE}" # update the selector
|
||||||
elif [[ "${ftype%%/*}" == 'text' ]]; then # update etype for text files
|
elif [[ "${ftype%%/*}" == 'text' ]]; then # update etype for text files
|
||||||
etype=0
|
etype=0
|
||||||
|
read -rsd$'\r' desc < "$fpath" # read the first file line as the description/title
|
||||||
|
desc="${desc##*([[:blank:]])}" # remove leading whitespace
|
||||||
|
desc="${desc%%*([[:blank:]])}" # remove trailing whitespace
|
||||||
fi
|
fi
|
||||||
# output the RFC-compliant Gophermap line
|
# output the RFC-compliant Gophermap line
|
||||||
printf '%s%s\t%s\t%s\t%s\r\n' "$etype" "$bname" "$esel" "$THOST" "$TPORT"
|
printf '%s%s\t%s\t%s\t%s\r\n' "$etype" "$desc" "$esel" "$THOST" "$TPORT"
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user