Pagina HTML per la cartella Public di Dropbox

Una cosa tediosa della cartella PUBLIC di dropbox è dover fornire il link per ogni singolo file. Perchè non creare un piccolo banale script in BASH che crei in automatico una pagina HTML contenente tutti i link ai singoli file della cartella.

Servirà sicuramente URL della public di dropbox. Voglio in automatico la pagina indice di una sottocartella della public e non della public stessa.

Lo script si chiama create-html-page.sh al quale ho impostato l’attributo di esecuzione( chmod +x create-html-page.sh ).

L’esecuzione prevede un parametro col nome della directory di cui creare la pagina HTML:

$> sh create-html-page.sh TESTDIR

[sourcecode language=”bash”]
#!/bin/bash

dropboxpublic="http://dl.dropbox.com/u/90009000/"
filename="index.html"
htmlfile="$1/$filename"

if [ $# -ne 1 ]
then
echo "Usage: $0 directory"
exit
fi

if [ ! -d $1 ]
then
echo "$1 must be a directory"
exit
fi
if [ -e $htmlfile ]
then
rm $htmlfile
fi
echo "<html>\n<title>index of $1</title>\n<body>\n" >> $htmlfile
for file in $( ls $1 -N ); do
if [ $file != $filename ]
then
item="$dropboxpublic$1/$file"
echo "<a href=\"$item\">$file</a><br />" >> $htmlfile
fi
done
echo "\n</body>\n</html>" >> $htmlfile
[/sourcecode]

Potrebbe essere necessario aggiustare lo script in caso i nomi delle cartelle o dei files contengano spazi. Una miglioria che ho in mente sarebbe quella di creare un script che ricorsivamente crei le pagine per tutta la public e le relative sottocartelle anche si nidificate in più livelli.