Re: A matching distroprefs appears to corrupt future calls to install()

[email protected] ((Andreas J. Koenig))
Newsgroups perl.cpan.workers
Message-ID <[email protected]>
>>>>> On Thu, 03 Dec 2009 20:50:24 -0600, brian d foy <[email protected]> said:

  > Localizing $CPAN::Distrostatus::something_has_failed_at seems to
  > decouple calls to install() when I don't want them to know about each 
  > other, and halt_on_failure still works as far as I can tell:

  >    DISTRO: foreach my $distro ( @distros ) {
  >       local $CPAN::Distrostatus::something_has_failed_at;

Darn. Now I got it. The thing is that the interactive user gets the FAIL
condition reset by the counter $CPAN::CurrentCommandId that increments
in CPAN.pm, line 423. The programmer does not get this service and
that's how you were trapped:-(

  > I don't particularly like that as a permanent solution, but it's a fine
  > one until the holidays are over.

Could we bring this into CPAN::Shell::rematein? Would this solve it:

  sub rematein {
      my $self = shift;
+     local $CPAN::CurrentCommandId = $CPAN::CurrentCommandId;

? I'm tempted to believe it would and I'll try it for now. I have not
yet constructed a test case, so this is a blind shot.

  > I think there's room for improvement in Distrostatus, but I'll think
  > about that later and maybe finish my half a patch.

I've reverted your previous patch (the s/NO/NA/ one). I'll put the
tentative fix above in, too, to see what else it breaks.

Thanks!
-- 
andreas
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.