30 lines
622 B
Bash
Executable File
30 lines
622 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
BASE="/srv/www"
|
|
URL_LIST="$BASE/mirrors.txt"
|
|
|
|
if [ $# -lt 1 ]; then
|
|
echo "Usage: $0 URL [slug]"
|
|
exit 1
|
|
fi
|
|
|
|
url="$1"
|
|
if [ $# -ge 2 ]; then
|
|
slug="$2"
|
|
else
|
|
# crude slugify: strip scheme, replace non alnum with underscores
|
|
slug="$(echo "$url" | sed 's#https\?://##; s#[^a-zA-Z0-9._-]#_#g')"
|
|
fi
|
|
|
|
# Check if URL already exists
|
|
if grep -q " $url\$" "$URL_LIST" 2>/dev/null; then
|
|
echo "URL already in list. Not adding again."
|
|
else
|
|
echo "$slug $url" >> "$URL_LIST"
|
|
echo "Added: $slug $url"
|
|
fi
|
|
|
|
# Run update for just this slug
|
|
"$BASE/update_mirrors.sh" "$slug"
|