Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 97063fbc

Von Sven Schöling vor etwa 14 Jahren hinzugefügt

  • ID 97063fbce421678c56dc6ba98663ccb6b11a2ab5
  • Vorgänger 3c73035d
  • Nachfolger 5f4e1aba

Mehrere Fehler behoben und Texte leichter lesbar gemacht.

- require kann keine Versionierung, also muss das mit use gemacht werden.
- eval + defined Bugs durch idiomatischere Konstrukte ersetzt.
- gefühlte 500 Zeilen IO::File Code durch ein idiomatisches slurp ersetzt.
- Die Meldungen wenn ein Paket nicht gefunden wurden sind jetzt mit einem
freundlichen Kasten umrahmt, und damit in der Textmasse einfacher
auszumachen.
- Es können jetzt mehrere Sourcen an die module Definition angehängt werden.

Unterschiede anzeigen:

SL/InstallationCheck.pm
7 7

  
8 8
use strict;
9 9

  
10
BEGIN {
10 11
@required_modules = (
11 12
  { name => "parent",                              url => "http://search.cpan.org/~corion/" },
12
  { name => "Archive::Zip",                        url => "http://search.cpan.org/~adamk/" },
13
  { name => "Archive::Zip",   version => 12,       url => "http://search.cpan.org/~adamk/" },
13 14
  { name => "Class::Accessor",                     url => "http://search.cpan.org/~kasei/" },
14 15
  { name => "CGI::Ajax",                           url => "http://search.cpan.org/~bct/" },
15 16
  { name => "DateTime",                            url => "http://search.cpan.org/~drolsky/" },
......
30 31

  
31 32
@optional_modules = ();
32 33

  
34
$_->{fullname} = join ' ', grep $_, @$_{qw(name version)}
35
  for @required_modules, @optional_modules;
36
}
37

  
33 38
sub module_available {
34 39
  my $module  = $_[0];
35 40
  my $version = $_[1] || '' ;
36 41

  
37
  if (!defined(eval("require $module $version;"))) {
38
    return 0;
39
  } else {
40
    return 1;
41
  }
42
  return eval "use $module $version; 1";
42 43
}
43 44

  
44 45
my %conditional_dependencies;
45 46

  
46 47
sub check_for_conditional_dependencies {
47
  if (!$conditional_dependencies{net_ldap}) {
48
    $conditional_dependencies{net_ldap} = 1;
49

  
50
    my $in = IO::File->new('config/authentication.pl', 'r');
51
    if ($in) {
52
      my $self = {};
53
      my $code;
54

  
55
      while (my $line = <$in>) {
56
        $code .= $line;
57
      }
58
      $in->close();
59

  
60
      eval $code;
48
  return if $conditional_dependencies{net_ldap}++;
61 49

  
62
      if (! $EVAL_ERROR) {
50
  my $self = {};
51
  eval do { local (@ARGV, $/) = 'config/authentication.pl'; <> } or return;
63 52

  
64
        if ($self->{module} && ($self->{module} eq 'LDAP')) {
65
          push @required_modules, { 'name' => 'Net::LDAP', 'url' => 'http://search.cpan.org/~gbarr/' };
66
        }
67
      }
68
    }
69
  }
53
  push @required_modules, { 'name' => 'Net::LDAP', 'url' => 'http://search.cpan.org/~gbarr/' }
54
    if $self->{module} && ($self->{module} eq 'LDAP');
70 55
}
71 56

  
72 57
sub test_all_modules {

Auch abrufbar als: Unified diff