Front-end en Perl para encontrar paquetes Debian remotamente


Como parece que le gente es muy perezosa 🙂 para ir a buscar a que paquetes corresponden determinado ficheros (ver artículo anterior), hice un pequeño programa en Perl que usa en links para consultar a la base de datos de Debian.

Este programa necesita que esté instalado el links para poder funcionar. Si no lo tenéis, es muy fácil cambiar el comando por otro como el lynx o el wget..

Para ejecutar sólo hay que hacer:

$ query_file.pl fichero_a_buscar

Por defecto busca en la versión inestable, arquitectura i386 y es no sensitivo a mayúsculas y minúsculas. Todo eso se puede cambiar en la línea de comandos. Por ejemplo:

$ query_file.pl -v stable -c sensitive -a powerpc fichero_a_buscar

Que os sea útil…

#!/usr/bin/perl
# query_file.pl.
# Author: Ricardo Galli – 2001
# License: GPL

# We assign default values
$server = “packages.debian.org”;
$case = ‘insensitive’;
$arch = ‘i386’;
$version = ‘testing’;

# take a look at Getopt in Perl 5+ for a much
# more powerful way of doing this.
while(defined($ARGV[0]) and substr($ARGV[0], 0, 1) eq ‘-‘) {
if ($ARGV[0] eq ‘-c’) {
shift;
$case = shift;
}
elsif ($ARGV[0] eq ‘-a’) {
shift;
$arch = shift;
}
elsif ($ARGV[0] eq ‘-v’) {
shift;
$version = shift;
}
else {
print “Don’t understand $ARGV[0].\n”;
&usage
}
}
# Concatenate words
while(defined($ARGV[0])) {
if(defined($words)) {
&usage
} else {
$words = $ARGV[0];
}
shift;
}

&usage unless $words;

$url = “\”http://$server/cgi-bin/search_contents.pl?” .
“case=$case&arch=$arch&version=$version&word=$words\””;
print “URL: $url \n”;
@response = `links -dump $url`;
print @response;
exit;

sub usage() {
print “Usage: query_file.pl [-c sensitive|insensitive] [-a i386|arm|sparc|…] \n”;
print ” [-v stable|testing|unstable] word\n\n”;
exit(1);
}

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=789 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.