geomyidae

A small C-based gopherd. (gopher://bitreich.org/1/scm/geomyidae)
git clone git://r-36.net/geomyidae
Log | Files | Refs | README | LICENSE

commit 8d1047f9e55a6210bdee47aecde5728c0ae12c60
parent d39742c74e21e225e06d1a7d55044a740158d6e4
Author: Christoph Lohmann <20h@r-36.net>
Date:   Sun,  3 Apr 2022 09:41:42 +0200

Add first umn-conforming dirlisting implementation.

Much is to fix here.

Diffstat:
cgi-examples/dirlisting.dcgi | 36++++++++++++++++++++++++++++++++++--
cgi-examples/maplisting.dcgi | 11-----------
2 files changed, 34 insertions(+), 13 deletions(-)

diff --git a/cgi-examples/dirlisting.dcgi b/cgi-examples/dirlisting.dcgi @@ -1,7 +1,39 @@ #!/bin/sh # -# List all .md files in some directory and show a dir listing. +# Dir listing example. # +# Entry definition in .Links, .cap/$file or .names: +# Name=, Type=, Path=, Host=, Port=, Numb=, Abstract=, Admin=, URL=, TTL= +# + +[ -f .abstract ] && cat .abstract | sed 's/^t/&&/' + +find . -maxdepth 1 \ +| sort -r \ +| cut -d'/' -f 2- \ +| grep -v "^\." \ +| while read -r entry; +do + [ "${entry}" == ".cap" ] && continue + [ "${entry}" == ".Links" ] && continue + [ "${entry}" == ".names" ] && continue + + entrytype="9" + [ -d "${entry}" ] && entrytype="1" + + entryserver="server" + entryport="port" + entryname="%f" + if [ -f ".cap/$entry" ]; + then + entryname="$(cat ".cap/$entry" \ + | grep "^Name=" \ + | cut -d'=' -f 2-)" + fi + [ -z "${entryname}" ] && entryname="%f" -find *.md -printf "[0|%TY-%Tm-%Td %f|%f|server|port]\r\n" | sort -r + find "${entry}" \ + -maxdepth 0 \ + -printf "[${entrytype}|%TY-%Tm-%Td ${entryname}|%f|${entryserver}|${entryport}]\r\n" +done diff --git a/cgi-examples/maplisting.dcgi b/cgi-examples/maplisting.dcgi @@ -1,11 +0,0 @@ -#!/bin/sh -# -# List all .md files in some directory and show a dir listing. -# Display map.gph first. -# - -[ -f map.gph ] && cat map.gph -[ -f .abstract ] && cat .abstract - -find *.md -printf "[0|%TY-%Tm-%Td %f|%f|server|port]\r\n" | sort -r -