#!/bin/sh # Copyright (C) 2018, 2019 GNUnet e.V. # # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright # notice and this notice are preserved. This file is offered as-is, # without any warranty. # # This initial version builds on code from ssg4 # copyright is as follows: # ----- # https://www.romanzolotarev.com/bin/ssg4 # Copyright 2018 Roman Zolotarev # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # ----- list_pages(){ cd rendered && find . -type f ! -path '*/.*' ! -path '*/_*' -name '*.html' | sed 's#^./##;#' } main(){ dst=rendered base_url="$4" date=$(date +%Y-%m-%d) urls=$(list_pages "$src") test -n "$urls" && render_sitemap "$urls" "$base_url" "$date" > "$dst/sitemap.xml" print_status 'url' 'urls' "$urls" >&2 echo >&2 } print_status() { test -z "$3" && printf 'no %s' "$2" && return echo "$3" | awk -v singular="$1" -v plural="$2" ' END { if (NR==1) printf NR " " singular if (NR>1) printf NR " " plural }' } render_sitemap() { urls="$1" base_url="$2" date="$3" echo '' echo '' echo "$urls" | sed -E 's#^(.*)$#'"$base_url"'/\1'\ "$date"'1.0#' echo '' } main "$@"