1 | #!/bin/sh |
---|
2 | #file=ftp_index |
---|
3 | #ftp_index for root interactive ftp, |
---|
4 | #ftp_index?[/]name/rep2/..../repn/ for subdirectory interactive ftp, |
---|
5 | #ftp_index?[/]name/rep2/repn/file[+[download|display]] for file direct ftp. |
---|
6 | #1.-IF PRESENT, THE DIRECTORY/FILE ARGUMENT SHOULD BE SEPARATED |
---|
7 | #FROM THE COMMAND WITH A `?'. |
---|
8 | #2-IF PRESENT, THE DIRECTORY/FILE ARGUMENT SHOULD START WITH A NAME |
---|
9 | #FOUND IN THE FTP.CONF FILE : |
---|
10 | #THE ROOT DIRECTORY FOR THIS NAME IS THEN SUBSITUTED |
---|
11 | #AND APPLIED TO THE MATCHING HOST AND USER. |
---|
12 | #3.-A DIRECTORY SPECIFICATION SHOULD END WITH ONE "/", |
---|
13 | #A FILE SPECIFICATION SHOULD NOT. |
---|
14 | # |
---|
15 | conf=/usr/local/etc/httpd/adm/conf/ftpgeisa.conf |
---|
16 | if [ -n "$1" ];then #ftp?dir|file |
---|
17 | if [ `expr "$1" : ".*/$"` -ne 0 ];then isdir=1; set `expr "$1" : "/*\(.*\)/"`; fi |
---|
18 | name=`expr "$1" : "/*\([^/]*\)"` |
---|
19 | line=`grep "^[ | ]*$name/*" $conf` |
---|
20 | name=`expr "$line" : "[ | ]*\([^ |^ ]*\)"` |
---|
21 | host=`expr "$line" : "[ | ]*[^ |^ ]*[ | ]*\([^ |^ ]*\)"` |
---|
22 | user=`expr "$line" : "[ | ]*[^ |^ ]*[ | ]*[^ |^ ]*[ | ]*\([^ |^ ]*\)"` |
---|
23 | root=`expr "$line" : "[ | ]*[^ |^ ]*[ | ]*[^ |^ ]*[ | ]*[^ |^ ]*[ | ]*\([^ |^ ]*\)"` |
---|
24 | dir=$root/`expr "$1" : "/*[^/]*/*\(.*\)"` |
---|
25 | HTTP_REFERER=1 |
---|
26 | export HTTP_REFERER |
---|
27 | if [ -z "$isdir" ];then #file |
---|
28 | ftp_file $host $user `dirname $dir` `basename $dir` 0 $2 |
---|
29 | else |
---|
30 | ftp_dir $host $user $dir $1 $root |
---|
31 | fi |
---|
32 | exit 0 |
---|
33 | fi |
---|
34 | echo content-type: text/html |
---|
35 | echo |
---|
36 | echo "<html><head><title>Index of /ftp</title></head><body><h1><img src=/icons-ftpgeisa/ftp.gif89><br><br>Index of /</h1>" |
---|
37 | echo "<pre> Name<hr>" |
---|
38 | { |
---|
39 | while read n h u d; do [ -z "$n" -o `expr "$n" : "#"` -ne 0 ]&&continue |
---|
40 | #root=$r=$5 is required only if $d doesn't start with `/' |
---|
41 | if [ `expr "$d" : '\/'` -ne 0 ];then r=+$d; else r=; fi |
---|
42 | echo "<a name=$n href=/cgi-ftpgeisa/ftp_dir?$h+$u+$d+$n$r><img src=/icons-ftpgeisa/menu.gif alt=[DIR] border=0> $n</a>" |
---|
43 | done |
---|
44 | } < $conf |
---|
45 | echo "</pre></body></html>" |
---|