domingo, 5 de octubre de 2008

comprobando versiones de paquetes en python y perl

Siguiendo con la 'nueva tematica'....

Cuando buscas info sobre programación, normalmente buscas aquellas 10 lineas de código que te permiten hacer XYZ. No un conocimiento solido sobre un lenguaje de programación (para eso estan los libros). Pues bien. ahi va una perla en python y perl sobre como partir los nombres de los paquetes linux del tipo nombre-version-arch-build.

empezamos con la version perl:

my %b = map {
my @x = split /-/;
my $clave = join '-', @x[0 .. @x-4];
{ $clave => $x[-3] }
} `ls /var/log/packages/`;

(gracias explorer por esta joya)

Ahora en python:

import os
import string

ls = os.listdir('/var/log/packages')

for i in ls:
parts = i.rsplit('-', 3)
build = parts[-1]
arch = parts[-2]
version = parts[-3]
name = parts[0]
print name, version, arch, build

Los códigos no hacen exactamente lo mismo, pero se ven 2 aproximaciones distintas, cada una con las ideas de cada lenguaje. Cabe decir que soy novato en los 2, pero intentamos hacerlo mejor cada dia