commit 7d50f07ca06423a5d0c93ce190093920f551c669 Author: Solene Rapenne Date: Tue Jul 20 22:13:55 2021 +0200 first version diff --git a/potcasse b/potcasse new file mode 100755 index 0000000..b61666d --- /dev/null +++ b/potcasse @@ -0,0 +1,116 @@ +#!/bin/sh + +exitp() { + echo "$1" + exit 1 +} + +usage() { + name=$(basename $0) + printf '%s\n' \ + "$name init | gen | episode TITLE FILE [ID]" \ + "$name init" \ + ': initialize the potcasse structure' \ + "$name gen" \ + ': generate the RSS file' \ + "$name episode TITLE FILE [ID]" \ + ': create the structure for a new episode and eventually copy file [FILE] in [ID]' + exit 0 +} + +init() { + test -f metadata.sh && exitp "You seem in a directory managed by potcasse" + mkdir -p episodes + cat << EOF > metadata.sh +SITE= +LANG=en-us +#uncomment to use logo.png as a logo +#IMAGE=YES +EOF + exit 0 +} + +episode() { + test -f metadata.sh || exitp "The directory isn't managed by potcasse" + TITLE="$1" + + test -f "$2" || exitp "File $2 doesn't exist" + AUDIOFILE="$2" + EXT=${AUDIOFILE##*.} + + if [ -n "$3" ] + then + ID="$3" + else + ID="$(date +%Y%m%d%H)" + fi + + DEST="episodes/${ID}" + mkdir -p "$DEST" + cat << EOF > ${DEST}/metadata.sh +TITLE="$TITLE" +PUBDATE="$(date "+%a, %d %b %Y 00:00:00 GMT")" +AUDIOFILE="${ID}.${EXT}" +EOF + cp "$AUDIOFILE" "${DEST}/${ID}.${EXT}" +} + +gen() { + TMPFILE=$(mktemp /tmp/potcasse.XXXXXXXXXXXXXXXXXXXXX) + . ./metadata.sh + mkdir -p output_html/episodes + + if [ -n "$IMAGE" ] + then + test -f logo.png || exitp "You defined an IMAGE, move it to $PWD/logo.png" + cp logo.png output_html/logo.png + fi + + cat <> $TMPFILE + + + + ${TITLE} + ${DESCRIPTION} + ${SITE} + + ${SITE}/logo.png + Image of ${SITE} + ${SITE} + + ${LANG} +EOF + + for episode in episodes/* + do + echo "Scanning $episode" + . ${episode}/metadata.sh + SIZE=$(stat -f "%z" "${episode}/${AUDIOFILE}") + EXT=${AUDIOFILE##*.} + rsync -a "${episode}/${AUDIOFILE}" output_html/episodes/ + cat <> $TMPFILE + + $TITLE + + ${PUBDATE} + + +EOF + done + + cat <> $TMPFILE + + +EOF + install -m 644 "$TMPFILE" output_html/${RSSLINK} + rm "$TMPFILE" +} + + +case "$1" in + '') usage;; + help) usage;; + init) init ;; + gen) gen ;; + episode) [ -n "$2" ] && episode "$2" "$3" "$4" ;; +esac