#!/bin/sh path=$(printf "${PATH_INFO}" | tr -s "/") path="${path%/}" if [ -f ".${path}" ] then printf "Content-Type: text/plain; charset=utf-8\n\n" cat ".${path}"; exit fi if [ "${path##*.}" == "tgz" -a -d ".${path%.tgz}" ] then cd ".${path%/*}" dir="${path##*/}" printf "Content-Type: application/x-tar-gz\n\n" tar czf - "${dir%.tgz}"; exit fi [ -d ".${path}" ] || path="" rurl="${SCRIPT_NAME%/*}" durl="${rurl}/index" cd ".${path}" stat -c "%F|%n|%z|%s" [!-]* 2>/dev/null | sort | \ awk -F '|' -v rurl="${rurl}" -v durl="${durl}" \ -v path="${path}" -v purl="${path%/*}" ' BEGIN { u="BKMGT" print("Content-Type: text/html\n") print("\n") print("") print("Index of "rurl path"") print("

Index of "rurl path"


") print(path=="" ? "
" : "
../")
}

$1=="directory" {
	printf("%s%-60s", "", $2"/")
	printf("%.16s%20s\n", $3, "-")
	next
}

$1=="regular file" && $2 !~ /^index/ {
	e=int(log($4)/log(1024))
	printf("%s%-60s", "", $2"")
	printf("%.16s%19.1f%s", $3, $4/(1024^e), substr(u,e+1,1))
	while(( getline line < $2 ) > 0 ) {
		b=match(line, /[^[:print:][:blank:]]/)
		if(b>0) {break} else {continue}
	}
	printf("%5s%s\n", "", (b==0 ? "View" : ""))
}

END {
	printf("

") }'