178 lines
4.2 KiB
Bash
178 lines
4.2 KiB
Bash
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
|
|
RED="\e[31m"
|
|
GREEN="\e[32m"
|
|
YELLOW="\e[33m"
|
|
BLUE="\e[34m"
|
|
BOLD="\e[1m"
|
|
RESET="\e[0m"
|
|
|
|
log_info() { echo -e "${BLUE}[INFO]${RESET} $1"; }
|
|
log_success() { echo -e "${GREEN}[OK]${RESET} $1"; }
|
|
log_warn() { echo -e "${YELLOW}[WARN]${RESET} $1"; }
|
|
log_error() { echo -e "${RED}[ERROR]${RESET} $1"; }
|
|
|
|
trap 'log_error "Fehler in Zeile $LINENO"' ERR
|
|
|
|
if [[ "$EUID" -ne 0 ]]; then
|
|
log_error "Script muss als root laufen!"
|
|
exit 1
|
|
fi
|
|
|
|
backend() {
|
|
echo ""
|
|
echo "BACKEND Sitemap wird erzeugt..."
|
|
echo ""
|
|
BASEURL="https://backend.blackpi.ipv64.net"
|
|
SEARCH_PATH="/data/WEBSERVER/BACKEND/WEBROOT"
|
|
SITEMAP="/data/WEBSERVER/BACKEND/WEBROOT/sitemap.xml"
|
|
EXCLUDE_DIRS=(
|
|
"config_backups"
|
|
"Commands"
|
|
"controller"
|
|
"modules"
|
|
"config.php"
|
|
"main.js"
|
|
"style.js"
|
|
"login.php"
|
|
".htaccess"
|
|
"static"
|
|
"templates"
|
|
#"api"
|
|
)
|
|
|
|
echo ""
|
|
echo '<?xml version="1.0" encoding="UTF-8"?>' > $SITEMAP
|
|
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' >> $SITEMAP
|
|
|
|
find "$SEARCH_PATH" -type f | while read file; do
|
|
relpath="${file#$SEARCH_PATH/}"
|
|
|
|
skip=false
|
|
for dir in "${EXCLUDE_DIRS[@]}"; do
|
|
if [[ "$relpath" == "$dir"* ]]; then
|
|
skip=true
|
|
break
|
|
fi
|
|
done
|
|
if [ "$skip" = true ]; then
|
|
continue
|
|
fi
|
|
|
|
lastmod=$(date -r "$file" "+%Y-%m-%d")
|
|
|
|
changefreq="daily"
|
|
priority="1.0"
|
|
|
|
if [ "$relpath" == "index.php" ] || [ "$relpath" == "index.html" ]; then
|
|
changefreq="weekly"
|
|
priority="1.0"
|
|
fi
|
|
|
|
echo " <url>" >> $SITEMAP
|
|
echo " <loc>$BASEURL/$relpath</loc>" >> $SITEMAP
|
|
echo " <lastmod>$lastmod</lastmod>" >> $SITEMAP
|
|
echo " <changefreq>$changefreq</changefreq>" >> $SITEMAP
|
|
echo " <priority>$priority</priority>" >> $SITEMAP
|
|
echo " </url>" >> $SITEMAP
|
|
|
|
echo " -> $BASEURL/$relpath"
|
|
done
|
|
|
|
echo '</urlset>' >> $SITEMAP
|
|
|
|
echo ""
|
|
echo "Sitemap wurde erzeugt: $SITEMAP"
|
|
echo ""
|
|
}
|
|
|
|
public() {
|
|
echo ""
|
|
echo " PUBLIC Sitemap wird erzeugt..."
|
|
echo ""
|
|
BASEURL="https://www.blackpi.ipv64.net"
|
|
SEARCH_PATH="/data/WEBSERVER/PUBLIC/WEBROOT"
|
|
SITEMAP="/data/WEBSERVER/PUBLIC/WEBROOT/sitemap.xml"
|
|
EXCLUDE_DIRS=(
|
|
"controller"
|
|
"moduls"
|
|
"templates"
|
|
"services/GenBerichte/"
|
|
"services/GenBerichte/Arbeitsberichte/overtime_corrections.json"
|
|
"services/Berichte/Arbeitsberichte/overtime_corrections.json"
|
|
"services/test/"
|
|
"services/test.php"
|
|
"main.js"
|
|
"style.js"
|
|
"api"
|
|
".htaccess"
|
|
)
|
|
|
|
echo ""
|
|
echo '<?xml version="1.0" encoding="UTF-8"?>' > $SITEMAP
|
|
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' >> $SITEMAP
|
|
|
|
find "$SEARCH_PATH" -type f | while read file; do
|
|
relpath="${file#$SEARCH_PATH/}"
|
|
|
|
skip=false
|
|
for dir in "${EXCLUDE_DIRS[@]}"; do
|
|
if [[ "$relpath" == "$dir"* ]]; then
|
|
skip=true
|
|
break
|
|
fi
|
|
done
|
|
if [ "$skip" = true ]; then
|
|
continue
|
|
fi
|
|
|
|
lastmod=$(date -r "$file" "+%Y-%m-%d")
|
|
|
|
changefreq="daily"
|
|
priority="1.0"
|
|
|
|
if [ "$relpath" == "index.php" ] || [ "$relpath" == "index.html" ]; then
|
|
changefreq="weekly"
|
|
priority="1.0"
|
|
fi
|
|
|
|
echo " <url>" >> $SITEMAP
|
|
echo " <loc>$BASEURL/$relpath</loc>" >> $SITEMAP
|
|
echo " <lastmod>$lastmod</lastmod>" >> $SITEMAP
|
|
echo " <changefreq>$changefreq</changefreq>" >> $SITEMAP
|
|
echo " <priority>$priority</priority>" >> $SITEMAP
|
|
echo " </url>" >> $SITEMAP
|
|
|
|
echo " -> $BASEURL/$relpath"
|
|
done
|
|
|
|
echo '</urlset>' >> $SITEMAP
|
|
|
|
echo ""
|
|
echo "Sitemap wurde erzeugt: $SITEMAP"
|
|
echo ""
|
|
}
|
|
|
|
ACTION="${1:-}"
|
|
TARGET="${2:-}"
|
|
OPTIONAL="${3:-}"
|
|
|
|
case "$ACTION" in
|
|
all)
|
|
backend
|
|
public
|
|
;;
|
|
public)
|
|
public
|
|
;;
|
|
backend)
|
|
backend
|
|
;;
|
|
*)
|
|
echo " $0 {public|backend}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|