Bash script per poter navigare nelle cartelle dentro Public (Dropbox)

Il problema è quello trattato in precedenza: creare della pagine HTML contenenti i link ai files di una cartella.
Lo script estende la funzionalità di quello precedente creando le pagine di indice per la cartella specificata e per ogni altra subdirectory figlia, collegando tra di loro gli indici per poter navigare l’intero sotto albero.

Si deve sempre passare il link della directory inserita in Public comprensivo della componente finale ‘index.html’:

http://dl.dropbox.com/u/12345678/Software/index.html

[sourcecode language=”bash”]
#!/bin/bash
dropboxpublic="http://dl.dropbox.com/u/12345678/"
indexname="index.html"
# one parameter only "directory"
if [ $# -ne 1 ]; then
echo "Usage: >sh $0 directory"
exit
fi
#’find’ creates the list of subdirectories
for dir in $(find $1 -type d -print); do
htmlfile="$dir/$indexname"
echo $htmlfile
#remove the index if already exists
if [ -e $htmlfile ]; then
rm $htmlfile
fi
#create HTML page with files inside directory
echo "<html>\n<title>$dir</title>\n<body>\n">> $htmlfile
for file in $( ls $dir -N ); do
if [ $file != $indexname ]; then
if [ -d "$dir$file" ]; then
item="$dropboxpublic$dir$file/$indexname"
echo "<a href=\"$item\">[DIR] $file</a><br/>" >> $htmlfile
else
item="$dropboxpublic$dir/$file"
echo "<a href=\"$item\">$file</a><br/>" >> $htmlfile
fi
fi
done
echo "\n</body>\n</html>">> $htmlfile
done
[/sourcecode]

ad esempio:

 mas@westport:~/Dropbox/Public$ ls
 totale 20
 -rw-rw-r-- 1 mas mas  871 feb 14 16:42 build-tree-from.sh
 drwxrwxr-x 5 mas mas 4096 feb 13 17:15 Software
 drwxrwxr-x 5 mas mas 4096 feb 13 17:17 Wallpaper
 mas@westport:~/Dropbox/Public$ sh build-tree-from.sh Software/