Ignore:
Timestamp:
07/12/10 19:59:19 (3 years ago)
Author:
bruno
Message:

r3947@sge91-1-82-234-15-218: bruno | 2010-07-10 18:40:35 +0200

  • Adds function pb_distro_getlsb and make pbdistrocheck fully lsb_release compatible
File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/pb-modules/lib/ProjectBuilder/Distribution.pm

    r1067 r1071  
    2323  
    2424our @ISA = qw(Exporter); 
    25 our @EXPORT = qw(pb_distro_conffile pb_distro_init pb_distro_get pb_distro_installdeps pb_distro_getdeps pb_distro_only_deps_needed pb_distro_setuprepo pb_distro_get_param); 
     25our @EXPORT = qw(pb_distro_conffile pb_distro_init pb_distro_get pb_distro_getlsb pb_distro_installdeps pb_distro_getdeps pb_distro_only_deps_needed pb_distro_setuprepo pb_distro_get_param); 
    2626 
    2727=pod 
     
    226226} 
    227227 
     228=item B<pb_distro_getlsb> 
     229 
     230This function returns the 5 lsb values LSB version, distribution ID, Description, release and codename. 
     231As entry it takes an optional parameter to specify whether the output is short or not. 
     232 
     233=cut 
     234 
     235sub pb_distro_getlsb { 
     236 
     237my $s = shift; 
     238pb_log(3,"Entering pb_distro_getlsb\n"); 
     239 
     240my ($ambiguous_rel_files) = pb_conf_get("osrelambfile"); 
     241my $lsbf = $ambiguous_rel_files->{"lsb"}; 
     242 
     243# LSB has not been configured. 
     244if (not defined $lsbf) { 
     245    print STDERR "no lsb entry defined for osrelambfile\n"; 
     246    die "You modified upstream delivery and lost !\n"; 
     247} 
     248 
     249if (-r $lsbf) { 
     250    my $rep = pb_get_content($lsbf); 
     251    # Create elementary fields 
     252    my ($c, $r, $d, $i, $l) = ("", "", "", "", ""); 
     253    for my $f (split(/\n/,$rep)) { 
     254        pb_log(3,"Reading file part ***$f***\n"); 
     255        $c = $f if ($f =~ /^DISTRIB_CODENAME/); 
     256        $c =~ s/DISTRIB_CODENAME=/Codename:\t/; 
     257        $r = $f if ($f =~ /^DISTRIB_RELEASE/); 
     258        $r =~ s/DISTRIB_RELEASE=/Release:\t/; 
     259        $d = $f if ($f =~ /^DISTRIB_DESCRIPTION/); 
     260        $d =~ s/DISTRIB_DESCRIPTION=/Description:\t/; 
     261        $d =~ s/"//g; 
     262        $i = $f if ($f =~ /^DISTRIB_ID/); 
     263        $i =~ s/DISTRIB_ID=/Distributor ID:\t/; 
     264        $l = $f if ($f =~ /^LSB_VERSION/); 
     265        $l =~ s/LSB_VERSION=/LSB Version:\t/; 
     266    } 
     267    $c =~ s/^[A-z ]*:[\t ]*// if (defined $s); 
     268    $r =~ s/^[A-z ]*:[\t ]*// if (defined $s); 
     269    $d =~ s/^[A-z ]*:[\t ]*// if (defined $s); 
     270    $i =~ s/^[A-z ]*:[\t ]*// if (defined $s); 
     271    $l =~ s/^[A-z ]*:[\t ]*// if (defined $s); 
     272    return($l, $i, $d, $r, $c); 
     273} else { 
     274    print STDERR "Unable to read $lsbf file\n"; 
     275    die "Please report to the maintainer bruno_at_project-builder.org\n"; 
     276} 
     277} 
    228278 
    229279=item B<pb_distro_installdeps> 
Note: See TracChangeset for help on using the changeset viewer.