mirror of git://bitreich.org/potcasse
first version
This commit is contained in:
commit
7d50f07ca0
|
@ -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 <<EOF >> $TMPFILE
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<rss version="2.0">
|
||||
<channel>
|
||||
<title>${TITLE}</title>
|
||||
<description>${DESCRIPTION}</description>
|
||||
<link>${SITE}</link>
|
||||
<image>
|
||||
<url>${SITE}/logo.png</url>
|
||||
<title>Image of ${SITE}</title>
|
||||
<link>${SITE}</link>
|
||||
</image>
|
||||
<language>${LANG}</language>
|
||||
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 <<EOF >> $TMPFILE
|
||||
<item>
|
||||
<title>$TITLE</title>
|
||||
<description></description>
|
||||
<pubDate>${PUBDATE}</pubDate>
|
||||
<enclosure url="${SITE}/episodes/${AUDIOFILE}" length="${SIZE}" type="audio/${EXT}" />
|
||||
</item>
|
||||
EOF
|
||||
done
|
||||
|
||||
cat <<EOF >> $TMPFILE
|
||||
</channel>
|
||||
</rss>
|
||||
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
|
Loading…
Reference in New Issue