ifediverse-scripts: Check for Pleroma gopher frontends on port 70 and 9999 - gopher-lawn - The gopher lawn gopher directory project. Err bitreich.org 70
hgit clone git://bitreich.org/gopher-lawn/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/gopher-lawn/ URL:git://bitreich.org/gopher-lawn/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/gopher-lawn/ bitreich.org 70
1Log /scm/gopher-lawn/log.gph bitreich.org 70
1Files /scm/gopher-lawn/files.gph bitreich.org 70
1Refs /scm/gopher-lawn/refs.gph bitreich.org 70
1Tags /scm/gopher-lawn/tag bitreich.org 70
i--- Err bitreich.org 70
1commit f0b1b8d0b43fe141ec73bdf335b2a5977818b426 /scm/gopher-lawn/commit/f0b1b8d0b43fe141ec73bdf335b2a5977818b426.gph bitreich.org 70
1parent 4aad4e8ef0a80cfc302bcdae6ebe837c6b442e65 /scm/gopher-lawn/commit/4aad4e8ef0a80cfc302bcdae6ebe837c6b442e65.gph bitreich.org 70
hAuthor: Julian Schweinsberg <pazz0@0xfa.de> URL:mailto:pazz0@0xfa.de bitreich.org 70
iDate: Mon, 8 Jul 2024 19:17:55 +0200 Err bitreich.org 70
i Err bitreich.org 70
ifediverse-scripts: Check for Pleroma gopher frontends on port 70 and 9999 Err bitreich.org 70
i Err bitreich.org 70
i9999 is the default Pleroma gopher port. That was the only port checked before. Err bitreich.org 70
iThere are at least two Pleroma instances using port 70 instead of port Err bitreich.org 70
i9999. So it makes sense to check it, too. Err bitreich.org 70
i Err bitreich.org 70
iThe check for "Public Timeline" was added because in some cases there Err bitreich.org 70
iare other gopherds listening on port 70. Err bitreich.org 70
i Err bitreich.org 70
iSigned-off-by: Christoph Lohmann <20h@r-36.net> Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M fediverse/check-for-gopher-service⦠| 24 ++++++++++++++++++------ Err bitreich.org 70
i M fediverse/mk-db-entries.sh | 7 ++++--- Err bitreich.org 70
i Err bitreich.org 70
i2 files changed, 22 insertions(+), 9 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/fediverse/check-for-gopher-service.sh b/fediverse/check-for-gopher-service.sh /scm/gopher-lawn/file/fediverse/check-for-gopher-service.sh.gph bitreich.org 70
i@@ -1,11 +1,23 @@ Err bitreich.org 70
i #!/bin/sh Err bitreich.org 70
i Err bitreich.org 70
i-if [ $# -lt 1 ]; Err bitreich.org 70
i+if [ "x$WORKER" = x1 ]; Err bitreich.org 70
i then Err bitreich.org 70
i- printf "usage: %s pleroma-servers.txt\n" "$(basename "$0")" >&2 Err bitreich.org 70
i- exit 1 Err bitreich.org 70
i-fi Err bitreich.org 70
i+ for port in 70 9999; Err bitreich.org 70
i+ do Err bitreich.org 70
i+ # grep using $port because there are cases (at least one) where: Err bitreich.org 70
i+ # 1. the frontend is accessible on port 70 but is primarily running on port 9999 (the menu is pointing to port 9999) Err bitreich.org 70
i+ # 2. the frontend is accessible on port 70, the menus are pointing at port 9999, but on port 9999 nothing answers... Err bitreich.org 70
i+ printf "\r\n" | nc -w 5 "$1" "${port}" 2>/dev/null | \ Err bitreich.org 70
i+ grep "${port}" | grep -q 'Public Timeline' \ Err bitreich.org 70
i+ && printf '%s:%s serves gopher\n' "$1" "${port}" && exit Err bitreich.org 70
i+ done Err bitreich.org 70
i+else Err bitreich.org 70
i+ if [ $# -lt 1 ]; Err bitreich.org 70
i+ then Err bitreich.org 70
i+ printf "usage: %s pleroma-servers.txt\n" "$(basename "$0")" >&2 Err bitreich.org 70
i+ exit 1 Err bitreich.org 70
i+ fi Err bitreich.org 70
i Err bitreich.org 70
i-shuf "$1" \ Err bitreich.org 70
i- | xargs -I '{}' -P 16 sh -c 'server={}; printf "\r\n" | nc -w 5 ${server} 9999 2>/dev/null | grep -q 9999 && printf "%s serves gopher\n" "${server}";' Err bitreich.org 70
i+ shuf "$1" | xargs -I '{}' -P 16 sh -c "WORKER=1 '$0' '{}'" Err bitreich.org 70
i+fi Err bitreich.org 70
i Err bitreich.org 70
1diff --git a/fediverse/mk-db-entries.sh b/fediverse/mk-db-entries.sh /scm/gopher-lawn/file/fediverse/mk-db-entries.sh.gph bitreich.org 70
i@@ -1,19 +1,20 @@ Err bitreich.org 70
i #!/bin/sh Err bitreich.org 70
i Err bitreich.org 70
i-lawndb="/br/gopher/lawn/db" Err bitreich.org 70
i+lawndb="../db" Err bitreich.org 70
i cd "${lawndb}" Err bitreich.org 70
i Err bitreich.org 70
i while read -r line; Err bitreich.org 70
i do Err bitreich.org 70
i [ -z "${line}" ] && continue Err bitreich.org 70
i Err bitreich.org 70
i- server="$(printf "%s\n" "${line}" | cut -d' ' -f 1)" Err bitreich.org 70
i+ server="$(printf "%s\n" "${line}" | cut -d' ' -f 1 | cut -d':' -f 1)" Err bitreich.org 70
i+ port="$(printf "%s\n" "${line}" | cut -d' ' -f 1 | cut -d':' -f 2)" Err bitreich.org 70
i linkfile="fediverse-${server}.link" Err bitreich.org 70
i { Err bitreich.org 70
i printf "Type: link\n" Err bitreich.org 70
i printf "Selector: \n" Err bitreich.org 70
i printf "Host: %s\n" "${server}" Err bitreich.org 70
i- printf "Port: 9999\n" Err bitreich.org 70
i+ printf "Port: %s\n" "${port}" Err bitreich.org 70
i printf "LinkName: Pleroma at %s\n" "${server}" Err bitreich.org 70
i printf "Description: Pleroma interface running at %s\n" "${server}" Err bitreich.org 70
i printf "Keywords: fediverse\n" Err bitreich.org 70
.
Response:
text/plain