#!/bin/sh set -e # usage: ./sitemap.sh urlencode() ( # urlencode old_lc_collate=$LC_COLLATE LC_COLLATE=C length="${#1}" i=1 while [ $i -le $length ] ; do c=$(expr substr "$1" $i 1) ; case $c in ([a-zA-Z0-9./~_-]) printf "$c" ;; (*) printf '%%%02X' "'$c" ;; esac ; true $((i=i+1)) ; done LC_COLLATE=$old_lc_collate ) echo ' ' > $2 echo "$(find -L $1 -type d | sort | sed -e 's;^\./;;' -e '\;/\(css\|error\|favicon\|fonts\|js\|media\);d' -e 's;$;/;')" | \ while IFS='' read -r data ; do DATE=$(grep "last-modified" ${data}/index.html | cut -f 4 -d \" | sed 's/ /T/' ) ; urlencode "$data" | sed -e 's;^;https://;' -e "s;$;${DATE};" ; printf "\n" ; done >> $2 echo '' >> $2 cat $2