[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Interfaz dpkg>web



Javier Viñuales Gutiérrez wrote:
> 
> No he sabido resolverlo, pero te mando un paquete deb, "deb2html_0.1-1.deb"
> que al instalarlo y ejecutar "deb2html nombre_pagina " te crea una
> bonita pagina con los paquetes deb instalados con la rutina que tu hiciste,
> y un enlace a un fichero de texto que crea automáticamente deb2html y que
> contiene una lista ordenada de mayor a menor espacio ocupado en disco por el
> paquete.

Muchas gracias por el paquete que me enviaste. 
He seguido comiendome la cabeza y finalmente he conseguido algo que
funciona
(adjunto el codigo)
Va lento, ( 5 minutos en un K6-300 ) pero dado que pienso correrlo en un
cron de madrugada no me importa. 
Habra que aprender C :-).
Muchas gracias a todos.
-- 
Antonio Calvo Rodriguez
ancalvo@mx2.redestb.es
Vigo/Galicia/España
--
#! /bin/bash
# ------------------------------------------------------------------------
# Program   : deb2web [lista Detallada de DEB]
# Written   : jue 31 dic 1998 21:43:16 CET
# Copyright : (c) Antonio Calvo Rodriguez ( 1998 )
# ------------------------------------------------------------------------
# $Id: deb2web,v 1.5 1999/01/01 20:47:27 antonio Exp antonio $


# VARS

PAQFILE=/var/lib/dpkg/status

# functions

usage()
{
cat <<-EOF
Deb 2 Web  (deb2web)
Generate tables of Debian packages to stdout
--
Usage: deb2web [options]
 
where options are:
 -h help 

--
EOF
}         

function indice()
    {
    echo "<table><tr><th>Paquete</th><th>Version</th><th>Comentario</th></tr>"
    dpkg -l |grep ^ii | while read basura paquete version resto
    do
    	echo "<tr>"
	echo "<td><a href=\"#${paquete}\">$paquete</a></td>"
    	echo "<td>$version</td>"
    	echo "<td>$resto</td>"
    done
    echo "</table>"
    }

function debians()
    {
    switch=1
    echo "<table><hr><th>Descripciones de los paquetes</th></hr><tr><td>"
    cat $PAQFILE| while read linea ; do
	linea=`echo $linea | sed "s/>/\&gt\;/g"| sed "s/</\&lt\;/g"`
	if [ "`echo $linea|grep Package`" != "" ]; then
	    oldlinea=$linea
	    read linea
	    if [ "`echo $linea|grep "install ok installed"`" != "" ]; then
		linea="</td></tr><tr><td>Package:<a name=\"${oldlinea:9}\">${oldlinea:9}</a>" 
		switch=1
	    else
		switch=0
	    fi
	fi
	if [ $switch -eq 1 ]; then
	    echo $linea"<br>"
	fi	
    done
    echo "</td></tr></table>"
    }

while getopts :h OPT; do
    case $OPT in
	h|+h)
	    usage
	    exit 0
	    ;;
	*)
	    echo "usage: ${0##*/} [+-h] [--] [file]..."
	    exit 2
    esac
done
shift $[ OPTIND - 1 ]

indice
debians

Reply to: