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

Re: Kernel-package, fix version 2 ...



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: