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

#!/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

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/

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *