From e1bceb6a66cb9f8f0815a626a0a11c442cb04af9 Mon Sep 17 00:00:00 2001 From: Darren 'Tadgy' Austin Date: Fri, 9 Aug 2024 01:28:02 +0100 Subject: [PATCH] Remove outdated content. --- cgi-bin/search.cgi | 174 --------------------- html/errordocs/400.shtml | 54 ------- html/errordocs/401.shtml | 54 ------- html/errordocs/403.shtml | 54 ------- html/errordocs/404.shtml | 54 ------- html/errordocs/405.shtml | 54 ------- html/includes/breadcrumbs-search-theme.php | 25 --- html/includes/search-footer-dark.html | 7 - html/includes/search-footer-light.html | 7 - html/includes/search-header-dark.html | 41 ----- html/includes/search-header-light.html | 41 ----- html/uk2-black.png | Bin 7981 -> 0 bytes html/uk2-white.png | Bin 9518 -> 0 bytes 13 files changed, 565 deletions(-) delete mode 100755 cgi-bin/search.cgi delete mode 100644 html/errordocs/400.shtml delete mode 100644 html/errordocs/401.shtml delete mode 100644 html/errordocs/403.shtml delete mode 100644 html/errordocs/404.shtml delete mode 100644 html/errordocs/405.shtml delete mode 100644 html/includes/breadcrumbs-search-theme.php delete mode 100644 html/includes/search-footer-dark.html delete mode 100644 html/includes/search-footer-light.html delete mode 100644 html/includes/search-header-dark.html delete mode 100644 html/includes/search-header-light.html delete mode 100644 html/uk2-black.png delete mode 100644 html/uk2-white.png diff --git a/cgi-bin/search.cgi b/cgi-bin/search.cgi deleted file mode 100755 index 448cbf1..0000000 --- a/cgi-bin/search.cgi +++ /dev/null @@ -1,174 +0,0 @@ -#!/bin/bash - -# Configuration options -BASE_DIR="/data/sites" -STORAGE_PREFIX="/storage/md0" -IGNORE_REGEXES=('^/\.sandbox.*' '^/\.lftp.*' '^/dead\.letter' '.*\.rsync-tmp.*') -HEADER_DARK="$BASE_DIR/${SERVER_NAME:-slackware.uk}/html/includes/search-header-dark.html" -FOOTER_DARK="$BASE_DIR/${SERVER_NAME:-slackware.uk}/html/includes/search-footer-dark.html" -HEADER_LIGHT="$BASE_DIR/${SERVER_NAME:-slackware.uk}/html/includes/search-header-light.html" -FOOTER_LIGHT="$BASE_DIR/${SERVER_NAME:-slackware.uk}/html/includes/search-footer-light.html" -LOCATEDB="/tmp/mirrors.db" -LIMIT=1000 -MAX_CONCURRENT=5 - -# Extglob is required. -shopt -s extglob - -# Output an error in processing. -die() { - # $1 = The error message to output. - # $2 = Whether to include the retry link ("false" to disable inclusion, everything else is true). - cat <
-
- - - - -
- Error: $1$([[ "${2,,}" != "false" ]] && printf "
\n Please click here to retry your search." "${REQUEST_SCHEME:-https}://${SERVER_NAME:-slackware.uk}/search?$QUERY_STRING") -
-
- - -EOF - exit 1 -} - -# Initial headers. -printf "%s: %s\\n" "Content-type" "text/html" -printf "%s: %s\\n" "Cache-Control" "no-cache, no-store, must-revalidate" -printf "%s: %s\\n" "Pragma" "no-cache" -printf "%s: %s\\n\\n" "Expires" "1" - -# Extract cookies. -while read -r -d " " RAW; do - KEY="${RAW%%=*}" - VALUE="${RAW#*=}" - declare -A COOKIES+=( ["${KEY,,}"]="${VALUE,,}" ) -done <<<"$HTTP_COOKIE " # The space at the end is required. - -# Include the themed header. -if [[ "${COOKIES['theme']}" == "dark" ]]; then - cat "$HEADER_DARK" -else - cat "$HEADER_LIGHT" -fi - -# Limit the number of concurrent searches to avoid DoS. -if (( $(lsof -t "$LOCATEDB" | wc -l) > (MAX_CONCURRENT - 1) )); then - die "too many concurrent searches!" -else - exec 9<"$LOCATEDB" && flock -s -E 10 -w 2 9 || die "too many concurrent searches!" - - while read -r -d '&' QUERY; do - # If the read returned an empty string, skip. - [[ -z "$QUERY" ]] && continue - - # Extract the key and value to temporary variables. - KEY="${QUERY%%=*}" - VALUE="${QUERY#*=}" - - # Check the key is valid as a variable name. - [[ ! "$KEY" =~ ^[[:digit:]_]*[[:alnum:]_]*$ ]] && die "invalid query - don't try to be clever :)" "false" - - # Remove spaces from beginning and end of value. - : "${VALUE/#+(+)}" - : "${_/%+(+)}" - - # Squash multiple spaces in value. - : "${_//+(+)/+}" - - # Convert values from %-encoded form. - : "${_//%/\\x}" - - # Define the variable from the key name. - declare "X_$KEY"="$(printf "%b" "${_//+/ }")" - done <<<"${QUERY_STRING,,}&" # The & at the end is required. - - # Take a copy of q before it's modified, for the heading. - Q_COPY="${X_q:-(empty)}" - - # Adjust 'X_q' for the locate command by wrapping search elements in *s. - : "*${X_q// /* *}*" - X_q="${_//\/*/*}" - - # HTML boilerplate. - cat < - - - - -
- Search Results

- Search query: $Q_COPY
- Searches may contain multiple terms, include (basic) globs,
- and descend down from the current directory. -
- - - - - - - - - - -
- -
-
- -EOF - - I=1 - COUNT=0 - while read -r ITEM; do - # Only show 1000 items to prevent long load times. - (( I == LIMIT + 1 )) && break - - # Remove paths we don't want the user to see. - while read -r -d " " REGEX; do - [[ "${ITEM/$STORAGE_PREFIX}" =~ $REGEX ]] && continue 2 - done <<<"${IGNORE_REGEXES[@]}" - - # List the item. - printf " • %s
\\n" "${ITEM/$STORAGE_PREFIX}" "${ITEM/$STORAGE_PREFIX}" "${ITEM/$STORAGE_PREFIX}" - - (( I++ )) - (( COUNT++ )) - done < <(locate -A -d "$LOCATEDB" -i -l "$(( LIMIT * 2 ))" "$STORAGE_PREFIX/${X_p##/}" $X_q | sort) - - # Tell the user about the results. - if (( COUNT == 0 )); then - printf " %s" "No results - try to widen your search." - elif (( COUNT == LIMIT )); then - printf " %s" "Maximum $LIMIT items shown - try to refine your search." - else - printf " %s" "$COUNT items found." - fi - -# HTML boilerplate. - cat < -
-
-EOF - - # Include footer. - if [[ "${COOKIES['theme']}" == "dark" ]]; then - cat "$FOOTER_DARK" - else - cat "$FOOTER_LIGHT" - fi -fi diff --git a/html/errordocs/400.shtml b/html/errordocs/400.shtml deleted file mode 100644 index 924e3da..0000000 --- a/html/errordocs/400.shtml +++ /dev/null @@ -1,54 +0,0 @@ - - - - Slackware UK: 400 - - - - - - - - - -

** Slackware UK **

-
- - - - -
- Patronage & donations
- If you use the Slackware UK services on a regular basis, and would like to contribute to running costs, make a continuing patronage (and receive special benefits), or make a one off PayPal payment, please use one of the following buttons: - - - - - - -
- GoFundMe Campaign - - Patreon Page - - PayPal Donation -
- All donations will be gratefully received - thank you! -
-
-
- - - - -
-

400 - Bad Request

- The server could not understand the request. -
-
-
-
-
- Mirror server bandwidth utilisation
- <!--#include virtual='/html/bwbar.txt' --> -
diff --git a/html/errordocs/401.shtml b/html/errordocs/401.shtml deleted file mode 100644 index b37b472..0000000 --- a/html/errordocs/401.shtml +++ /dev/null @@ -1,54 +0,0 @@ - - - - Slackware UK: 401 - - - - - - - - - -

** Slackware UK **

-
- - - - -
- Patronage & donations
- If you use the Slackware UK services on a regular basis, and would like to contribute to running costs, make a continuing patronage (and receive special benefits), or make a one off PayPal payment, please use one of the following buttons: - - - - - - -
- GoFundMe Campaign - - Patreon Page - - PayPal Donation -
- All donations will be gratefully received - thank you! -
-
-
- - - - -
-

401 - Unauthorised

- Authentication is required. -
-
-
-
-
- Mirror server bandwidth utilisation
- <!--#include virtual='/html/bwbar.txt' --> -
diff --git a/html/errordocs/403.shtml b/html/errordocs/403.shtml deleted file mode 100644 index d3e1c0b..0000000 --- a/html/errordocs/403.shtml +++ /dev/null @@ -1,54 +0,0 @@ - - - - Slackware UK: 403 - - - - - - - - - -

** Slackware UK **

-
- - - - -
- Patronage & donations
- If you use the Slackware UK services on a regular basis, and would like to contribute to running costs, make a continuing patronage (and receive special benefits), or make a one off PayPal payment, please use one of the following buttons: - - - - - - -
- GoFundMe Campaign - - Patreon Page - - PayPal Donation -
- All donations will be gratefully received - thank you! -
-
-
- - - - -
-

403 - Forbidden

- You do not have permission to access this resource. -
-
-
-
-
- Mirror server bandwidth utilisation
- <!--#include virtual='/html/bwbar.txt' --> -
diff --git a/html/errordocs/404.shtml b/html/errordocs/404.shtml deleted file mode 100644 index 808a15b..0000000 --- a/html/errordocs/404.shtml +++ /dev/null @@ -1,54 +0,0 @@ - - - - Slackware UK: 404 - - - - - - - - - -

** Slackware UK **

-
- - - - -
- Patronage & donations
- If you use the Slackware UK services on a regular basis, and would like to contribute to running costs, make a continuing patronage (and receive special benefits), or make a one off PayPal payment, please use one of the following buttons: - - - - - - -
- GoFundMe Campaign - - Patreon Page - - PayPal Donation -
- All donations will be gratefully received - thank you! -
-
-
- - - - -
-

404 - Not Found

- The requested page or file is not found. -
-
-
-
-
- Mirror server bandwidth utilisation
- <!--#include virtual='/html/bwbar.txt' --> -
diff --git a/html/errordocs/405.shtml b/html/errordocs/405.shtml deleted file mode 100644 index b021d4d..0000000 --- a/html/errordocs/405.shtml +++ /dev/null @@ -1,54 +0,0 @@ - - - - Slackware UK: 405 - - - - - - - - - -

** Slackware UK **

-
- - - - -
- Patronage & donations
- If you use the Slackware UK services on a regular basis, and would like to contribute to running costs, make a continuing patronage (and receive special benefits), or make a one off PayPal payment, please use one of the following buttons: - - - - - - -
- GoFundMe Campaign - - Patreon Page - - PayPal Donation -
- All donations will be gratefully received - thank you! -
-
-
- - - - -
-

405 - Method Forbidden

- Access method is not authorised. -
-
-
-
-
- Mirror server bandwidth utilisation
- <!--#include virtual='/html/bwbar.txt' --> -
diff --git a/html/includes/breadcrumbs-search-theme.php b/html/includes/breadcrumbs-search-theme.php deleted file mode 100644 index 21b2eac..0000000 --- a/html/includes/breadcrumbs-search-theme.php +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - -
- -
diff --git a/html/includes/search-footer-dark.html b/html/includes/search-footer-dark.html deleted file mode 100644 index f583b33..0000000 --- a/html/includes/search-footer-dark.html +++ /dev/null @@ -1,7 +0,0 @@ -
- Mirror server bandwidth utilisation
- - Bandwidth usage bar -
- - diff --git a/html/includes/search-footer-light.html b/html/includes/search-footer-light.html deleted file mode 100644 index 3bea115..0000000 --- a/html/includes/search-footer-light.html +++ /dev/null @@ -1,7 +0,0 @@ -
- Mirror server bandwidth utilisation
- - Bandwidth usage bar -
- - diff --git a/html/includes/search-header-dark.html b/html/includes/search-header-dark.html deleted file mode 100644 index 7669380..0000000 --- a/html/includes/search-header-dark.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - Slackware UK: Search Results - - -
-

Slackware UK Logo

-
-
- - - - -
- Patronage & Donations -
- If you use the Slackware UK services on a regular basis, and would like to contribute to running costs, make a continuing patronage (and receive special benefits), or make a one off PayPal payment, please use one of the following buttons: - - - - - - -
- Patreon Logo - - PayPal Logo -
- All donations will be gratefully received - thank you! -
-
diff --git a/html/includes/search-header-light.html b/html/includes/search-header-light.html deleted file mode 100644 index ef237fe..0000000 --- a/html/includes/search-header-light.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - Slackware UK: Search Results - - -
-

Slackware UK Logo

-
-
- - - - -
- Patronage & Donations -
- If you use the Slackware UK services on a regular basis, and would like to contribute to running costs, make a continuing patronage (and receive special benefits), or make a one off PayPal payment, please use one of the following buttons: - - - - - - -
- Patreon Logo - - PayPal Logo -
- All donations will be gratefully received - thank you! -
-
diff --git a/html/uk2-black.png b/html/uk2-black.png deleted file mode 100644 index 6b4fe53af9cce6d58c595001502ecb4ca4d97659..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7981 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 TuNZ5>i8i38Wdy6&aE$(ceLwqr