mkindexhtml.sh with nweb httpd


Forum: Programming and Scripting
Topic: mkindexhtml.sh with nweb httpd
started by: Zucca

Posted by Zucca on Nov. 29 2006,21:17
All right!

I think everybody can can find out the idea from source:
Code Sample
#!/bin/bash

# mkindexhtml.sh v0.1.4b - Creates index.html file containing links to files it finds.
# handy with nweb httpd. http://www-128.ibm.com/developerworks/eserver/library/es-nweb.html
# Copyright (C) 2006 Zucca (Zucca@IRCnet, ICQ#: 66768853, [EMAIL=zuccavondille@gmail.com]zuccavondille@gmail.com[/EMAIL])

# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# http://www.gnu.org/licenses/gpl.txt

if [ "$1" == "--help" ]
then
 echo -e "USAGE: mkindexhtml.sh <dir> <column count> [noprompt]"
 echo -e "       mkindexhtml.sh --help\n"
 echo -e "mkindexhtml.sh creates a file named index.html to <dir>."
 echo -e "index.html will contain all visible files (except index.html, nweb.log and directories) with links to them"
 echo -e "<column count> determines maxium of \$FILEs on a single line."
 echo -e "\nUseful with nweb httpd. http://www-128.ibm.com/developerworks/eserver/library/es-nweb.html"
 echo -e "\n   mkindexhtml.sh v0.1.4b (C) (GPL) Zucca@IRCnet, ICQ#:66768853\n"
 exit 0
fi

if [ -z $2 ]
then
 echo -e "USAGE: mkindexhtml.sh <dir> <column count> [noprompt]"
 echo -e "       mkindexhtml.sh --help\n"
 exit 1
fi

if [ -f "$1/index.html" ] && [ "$3" != "noprompt" ]
then
  echo "You already have previous index.html."
 rm -i $1/index.html
 if [ -f "$1/index.html" ]
 then
   echo -e "Aborted. Left original index.html untouched."
   exit 1
 fi
elif [ -f "$1/index.html" ] && [ "$3" == "noprompt" ]
then
 rm -f $1/index.html
fi

let "COLC=1"

echo -ne "<HTML>\n\n<HEAD>\n<TITLE>Directory index created by mkindexhtml.sh</TITLE>\n</HEAD>\n\n<BODY>\n<NOBR>" >> $1/index.html

for FILE in `ls $1`
do

 if [ "$FILE" != "index.html" ] && [ "$FILE" != "nweb.log" ] && [ ! -d "$FILE" ]
 then

   let "COLC=$COLC+1"

   if [ "$COLC" -gt "$2" ]
   then
     echo "<BR>" >> $1/index.html
     let "COLC=1"
   elif [ "$COLC" -gt "2" ]
   then
     echo -n "| " >> $1/index.html
   fi
 
   echo -ne "<A HREF=\"$FILE\">$FILE</A>\n" >> $1/index.html
 fi
done

echo -ne "\n<PRE>mkindexhtml.sh v0.1.4b created by Zucca@IRCnet, ICQ#:66768853\n Licenced under GNU General Public License.</PRE>\n\n</BODY>\n\n</HTML>" >> $1/index.html


Nice? But needs few things to be even more neat: < nweb httpd > and one line of extra code to run both, the script and the server:
Code Sample
killall nweb 2> /dev/null; ./mkindexhtml.sh <dir to share> <max cols> && <path to nweb> <port> <dir to share>


You can make it more simple by creating a sctipt from it like this (change paths!):
Code Sample
#!/bin/bash

killall nweb 2> /dev/null; /home/dsl/mkindexhtml.sh $1 5 && /home/dsl/nweb/nweb 8000 $1

See? Only 'directory to share' must be specified. Neat. :)

What's the use? Well you can rapidly share your files without much configration.
And changing shared directory isn't hard if you use the 'launch script'.
< Here's > my server running it.

D0h! Again I forgot that there's a statement such as case. Oh well. Until next update...

Posted by Zucca on Dec. 17 2006,20:41
Update:

Code Sample
#!/bin/bash

VERS="v0.2.2.2b"

LICENCE="
# mkindexhtml.sh - Creates index.html file containing links to files it finds.
# handy with nweb httpd. http://www-128.ibm.com/developerworks/eserver/library/es-nweb.html
# Copyright (C) 2006 Zucca (Zucca@IRCnet, ICQ#: 66768853, Zucca@dive.to)

# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# http://www.gnu.org/licenses/gpl.txt
"
# NEW feature:
# if you place .index.header or .index.footer files
# to the same dir where mkindexhtml.sh will create it's
# index.html then it will incluce those files in index.html.
# Header will be displayed before filelisting and
# footer will be displayed arfer.

HTMLSOURCEFOOTER="
As you seemed enough curious to look for html source, here's some details about mkindexhtml.sh:

Licence:
$LICENCE

In a simple way: It's free.
Some versions I make are not posted to public.
- Why?
Because I want to publish only good versions of this program.
Anyway you can still contact me if you want your copy of mkindexhtml.sh.

Currently I publish mkindexhtml.sh only at Damn Small Linux board:
http:///damnsmalllinux.org/static/act-ST/f-23/t-16279"/

if [ "$1" == "--help" ]
then
 echo -e "USAGE: mkindexhtml.sh <dir> <column count> [noprompt]"
 echo -e "       mkindexhtml.sh --help\n"
 echo -e "mkindexhtml.sh creates a file named index.html to <dir>."
 echo -e "index.html will contain all visible files (except index.html, nweb.log and directories) with links to them"
 echo -e "<column count> determines maxium of \$FILEs on a single line."
 echo -e "\nUseful with nweb httpd. http://www-128.ibm.com/developerworks/eserver/library/es-nweb.html"
 echo -e "\n   mkindexhtml.sh $VERS (C) (GPL) Zucca@IRCnet, ICQ#:66768853\n"
 exit 0
fi

if [ -z $2 ]
then
 echo -e "USAGE: mkindexhtml.sh <dir> <column count> [noprompt]"
 echo -e "       mkindexhtml.sh --help\n"
 exit 1
fi

if [ -f "$1/index.html" ] && [ "$3" != "noprompt" ]
then
  echo "You already have previous index.html."
 rm -i $1/index.html
 if [ -f "$1/index.html" ]
 then
   echo -e "Aborted. Left original index.html untouched."
   exit 1
 fi
elif [ -f "$1/index.html" ] && [ "$3" == "noprompt" ]
then
 rm -f $1/index.html
fi

let "COLC=1"

echo -ne "<HTML>\n\n<HEAD>\n<TITLE>Directory index created by mkindexhtml.sh</TITLE>\n</HEAD>\n\n<BODY>\n" >> $1/index.html

if [ -f "$1/.index.header" ]
then
 cat $1/.index.header >> $1/index.html
fi

echo -ne "\n<NOBR>\n" >> $1/index.html

for FILE in `ls $1`
do

 if [ "$FILE" != "index.html" ] && [ "$FILE" != "nweb.log" ] && [ ! -d "$FILE" ]
 then

   echo -ne "<A HREF=\"$FILE\">$FILE</A>\n" >> $1/index.html
   
   if [ ! "$COLC" -eq "$2" ]
   then
     echo -n "| " >> $1/index.html
   fi

   let "COLC=$COLC+1"

   if [ "$COLC" -gt "$2" ]
   then
     echo "<BR>" >> $1/index.html
     let "COLC=1"
   fi
 
 fi
done

UDATE=`date`

if [ -f "$1/.index.footer" ]
then
 cat $1/.index.footer >> $1/index.html
fi

echo -ne "
</NOBR><PRE>Index updated: $UDATE
mkindexhtml.sh $VERS created by Zucca@IRCnet, ICQ#:66768853
Licenced under GNU General Public License.</PRE>

</BODY>" >> $1/index.html

echo -ne "\n\n<!--\n$HTMLSOURCEFOOTER\n\n//-->\n\n</HTML>" >> $1/index.html

Powered by Ikonboard 3.1.2a
Ikonboard © 2001 Jarvis Entertainment Group, Inc.