#!/bin/sh # wwwcat 1.12 CGI para "navegar" por el servidor visualizando # directorios, graficos, y archivos ascii y .gz # # Copyright (C) 2000: Manel Marin # Licencia: GNU GPL versión 2 o posterior # Código fuente libre = Open Source # Sin garantia = No guaranty # # # Uso: http://localhost/cgi-bin/wwwcat/ # # Muestra archivos y archivos comprimidos con gzip (*.gz) # Si es un directorio muestra una tabla (ls -l) con hiperenlaces # # ATENCION: Este script corre con los permisos de www-data (apache) # # Cambios: # 1.00 Directorios sin formato y solo texto ASCII # 1.10 Directorios como tabla con hiperenlaces, ver .gz y graficos # 1.11 Visualizacion de G3 (fax) enviado como PNG # 1.12 *.g3.* para faxrunqd de mgetty-fax (*.g3.done) #PATH_INFO Contiene lo que va detras de .../wwwcat ##TODO: ## Hacer que funcionen nombres con espacios en su interior ## Tratar symlinks correctamente exec 2>&1 # Redirect errors to stdout ( Thanks to Luis Colorado ;) RUTA=/cgi-bin/wwwcat$PATH_INFO if [ -d $PATH_INFO ] then # OBLIGATORIO EN UN FILTRO CGI (los stdout tras esto van a la pagina) echo Content-type: text/html echo # INFO DE LA PAGINA/FRAME echo "" echo '

wwwcat

' ## Esto es para ver las variables de entorno... ##set echo "$PATH_INFO:" echo "" ls -al "$PATH_INFO" | awk -Wi -v path="$RUTA" ' # CONVERTIR EN ENLACES { print "" print "" print "" print "" } ' # CIERRO LA PAGINA echo "
"$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
" else # Proceso archivo segun la extension / Processing depending on the extension case $PATH_INFO in *.jpg|*.JPG) # OBLIGATORIO EN UN FILTRO CGI (los stdout tras esto van a la pagina) echo Content-type: image/jpeg echo cat "$PATH_INFO" ;; *.png|*.PNG) echo Content-type: image/png echo cat "$PATH_INFO" ;; *.gif|*.GIF) echo Content-type: image/gif echo cat "$PATH_INFO" ;; *.bmp|*.BMP) echo Content-type: image/x-ms-bmp echo cat "$PATH_INFO" ;; *.gz|*.GZ) echo Content-type: text/plain echo echo "--- wwwcat --- $PATH_INFO:" echo gunzip -c $PATH_INFO ;; *.g3|*.G3|*.g3.*|*.G3.*) # Formato de fax G3 se precisan paquetes mgetty-fax y pnmtopng echo Content-type: image/png echo cat "$PATH_INFO" | g32pbm | pnmtopng ;; *) # Por defecto muestro como texto... echo Content-type: text/plain echo echo "--- wwwcat --- $PATH_INFO:" echo cat "$PATH_INFO" ;; esac fi