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 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 .