sudo: Jack of all trades, master of some

Bash-feed-gen

4 comentarios

bash-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

Comentarios desactivados
  1. 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

    1. @BDAM

      Seguramente se tomó un mes sabático.

      1. @oneohthree

        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!

  2. Otro comentario más al respecto y lo borro.