Re: Kernel-package, fix version 2 ...
- To: Mattia Dongili <malattia@linux.it>
- Cc: Sven Luther <sven.luther@wanadoo.fr>, Erik van Konijnenburg <ekonijn@xs4all.nl>, debian-kernel@lists.debian.org
- Subject: Re: Kernel-package, fix version 2 ...
- From: Sven Luther <sven.luther@wanadoo.fr>
- Date: Mon, 24 Oct 2005 10:58:06 +0200
- Message-id: <20051024085806.GA16603@localhost.localdomain>
- In-reply-to: <2322.83.103.117.254.1130144513.squirrel@picard.linux.it>
- References: <20051022063650.GA17457@localhost.localdomain> <20051022134132.R13472@banaan.localdomain> <20051022141600.GB23786@localhost.localdomain> <20051022165539.S13472@banaan.localdomain> <20051022181009.GD3843@inferi.kami.home> <20051024075823.GA10708@localhost.localdomain> <2322.83.103.117.254.1130144513.squirrel@picard.linux.it>
On Mon, Oct 24, 2005 at 11:01:53AM +0200, Mattia Dongili wrote:
>
> On Mon, October 24, 2005 9:58 am, Sven Luther said:
> [...]
> > Mattia, could you look over this code :
> >
> > chomp (my $hostversion = `uname -r`);
> > my @ramdisklist =
> > grep {
> > my $ret = system ("$_ --supported-host-version=$hostversion
> > --supported-target-version=$version 1>/dev/null 2>&1");
> > -x and (
> > $ret == 0 or (
> > $ret == 1 and (
> > (($ramdisk eq "/usr/sbin/mkinitrd") and
> > (system ("dpkg", "--compare-versions", "$version", "lt",
> > "2.6.13") == 0)) or
> > (($ramdisk eq "/usr/sbin/mkinitramfs") and
> > (system ("dpkg", "--compare-versions", "$version", "lt",
> > "2.6.12") == 1)) or
> > (($ramdisk eq "/usr/sbin/mkinitrd.yaird") and
> > (system ("dpkg", "--compare-versions", "$version", "lt",
> > "2.6.8") == 1) and
> > (system ("dpkg", "--compare-versions", "$hostversion", "lt",
> > "2.6.8") == 1))
> > )
> > )
> > )
> > }
> > (split (/ /, $ramdisk));
>
>
> you could rewrite the grep this way:
>
> my @ramdisklist =
> grep {
> -x and (
> system ("$_ --supported-host-version=$hostversion
> --supported-target-version=$version 1>/dev/null 2>&1") == 0
> or (
> (($ramdisk eq "/usr/sbin/mkinitrd") and (system ("dpkg",
> "--compare-versions", "$version", "lt", "2.6.13") == 0))
> or
> (($ramdisk eq "/usr/sbin/mkinitramfs") and (system ("dpkg",
> "--compare-versions", "$version", "lt", "2.6.12") == 1))
> or
> (($ramdisk eq "/usr/sbin/mkinitrd.yaird") and (system
> ("dpkg", "--compare-versions", "$version", "lt", "2.6.8") ==
> 1) and (system ("dpkg", "--compare-versions",
> "$hostversion", "lt", "2.6.8") == 1))
> )
> )
> }
> (split (/ /, $ramdisk));
Oh, right, altough your code disregard the fact that i need to check for two
return values of the --supported* case.
Can i do :
-x and ( my $ret = ...; $ret == 0 or ($ret == 1 and ... ))
or maybe ?
-x and { my $ret = ...; $ret == 0 or ($ret == 1 and ... )}
Friendly,
Sven Luther
Reply to: