Bash-feed-gen
4 comentariosbash-feed-gen es un script de bash que genera y actualiza un archivo feed a partir de los archivos que vayan llegando a un determinado directorio.
Este script sería útil para aquellos que mantienen servidores de ficheros y deseen notificar a sus usuarios de nuevos archivos, ejemplo: http://download.jovenclub.cu/repos/rss.xml
El feed se genera solamente con los nodos requeridos: title, description y link. También se incluye pubDate con propósitos informacionales.
NOTA: Este script es una mejora notable de lo publicado anteriormente: Generar entradas RSS con bash.
Uso
Editar las siguientes variables con los valores apropiados:
FILEDIR: el directorio raíz que almacena los archivos.
FEEDDIR: el directorio que almacena el feed.
BASEURL: el nombre de dominio.
TITLE: el nombre del canal RSS.
DESCRIPTION: la descripción del canal RSS.
ENTRIES: cantidad de entradas.
#!/bin/bash
FILEDIR="/home/joe/downloads"
FEEDDIR="/home/joe/yk"
BASEURL="http://domain.tld"
TITLE="TITLE"
DESCRIPTION="DESCRIPTION"
ENTRIES="10"
if [[ ! -d $FILEDIR ]]
then
echo "$FILEDIR does not exist" 1>&2
exit 1
fi
if [[ ! -d $FEEDDIR ]]
then
echo "$FEEDDIR does not exist" 1>&2
exit 1
fi
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">
<channel>
<title>$TITLE</title>
<description>$DESCRIPTION</description>
<link>$BASEURL/feed.xml</link>
<atom:link href=\"$BASEURL/feed.xml\" rel=\"self\" type=\"application/rss+xml\" />
<pubDate>$(date -R)</pubDate>" > $FEEDDIR/feed.xml
i=0
while [ $i -lt $ENTRIES ] && IFS=$'\t' read -rd $'' TS FILE FILESIZE FILENAME
do
echo " <item>
<title>Available: $FILENAME ($FILESIZE)</title>
<description>Size: $FILESIZE</description>
<link>$BASEURL/$FILE</link>
</item>" >> $FEEDDIR/feed.xml
let i++
done < <( find $FILEDIR -type f -printf '%T+\t%p\t%s\t%f' | sort -rz )
echo " </channel>
</rss>" >> $FEEDDIR/feed.xml
exit 0
Proyecto en GitHub: bash-feed-gen
SUPER-off-topic
(No C PQ C me antoja ST como el mejor lugar P lanzar Sta pregunta)
¿Que volá con http://codeshard.cubava.cu/?
Mil disculpas por el SUPER-off-topic
Seguramente se tomó un mes sabático.
No yo se te tomó unas larrrrrgasssss Vacaciones :-(.
Qué le pasó a Oskar?, se obstino de Reflejos,:-)
Dios permita que al Canelo no le de por lo mismo. ;-(
Shalom!
Otro comentario más al respecto y lo borro.