- Timestamp:
- Feb 9, 2008, 2:48:12 AM (17 years ago)
- Location:
- devel/pb
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
devel/pb/bin/pb
r310 r313 106 106 # And get global params 107 107 if (defined $opts{'p'}) { 108 ($ ENV{'PBPROJ'},$debug,$LOG, $pbrc, $filteredfiles, $supfiles, $defpkgdir, $extpkgdir)108 ($debug,$LOG, $pbrc, $filteredfiles, $supfiles, $defpkgdir, $extpkgdir) 109 109 = pb_env_init($opts{'p'},$pbinit); 110 110 } else { 111 ($ ENV{'PBPROJ'},$debug,$LOG, $pbrc, $filteredfiles, $supfiles, $defpkgdir, $extpkgdir)111 ($debug,$LOG, $pbrc, $filteredfiles, $supfiles, $defpkgdir, $extpkgdir) 112 112 = pb_env_init(undef,$pbinit); 113 113 } … … 164 164 my $cms=pb_cms_init($ENV{'PBPROJ'}); 165 165 166 my ($pkgv, $pkgt) = pb_conf_ read("$ENV{'PBCONF'}/$ENV{'PBPROJ'}.pb","pkgver","pkgtag");166 my ($pkgv, $pkgt) = pb_conf_get_if("pkgver","pkgtag"); 167 167 168 168 # declare packager for filtering … … 985 985 print "pb (aka project-builder) Version $projectbuilderver-$projectbuilderrev\n"; 986 986 print "\n"; 987 print "Syntax: pb [-vhqt][-r pbroot][-p project][[-s script -a account -P port] -m \"mach-1[,...]\"][-i iso] <action> [<pkg1> ...]\n";987 print "Syntax: pb [-vhqt][-r pbroot][-p project][[-s script -a account -P port] -m \"mach-1[,...]\"][-i iso] <action> [<pkg1> ...]\n"; 988 988 print "\n"; 989 989 print "-h: This help file\n"; … … 1005 1005 print " to connect on the related VMs.\n"; 1006 1006 print "\n"; 1007 print "-P port: Number of the portto use\n";1007 print "-P port: Port number to use\n"; 1008 1008 print " to connect on the related VMs.\n"; 1009 1009 print "\n"; -
devel/pb/lib/ProjectBuilder/Base.pm
r310 r313 40 40 41 41 # 42 # We get the pb rcfile for that project42 # We get the pbconf file for that project 43 43 # and use its content 44 44 # 45 my ($pb rc) = pb_conf_read("$ENV{'PBETC'}","pbrc");46 print "DEBUG pb rc: ".Dumper($pbrc)."\n" if ($debug >= 1);47 48 my %pb rc = %$pbrc;45 my ($pbconf) = pb_conf_read("$ENV{'PBETC'}","pbconf"); 46 print "DEBUG pbconf: ".Dumper($pbconf)."\n" if ($debug >= 1); 47 48 my %pbconf = %$pbconf; 49 49 if (not defined $proj) { 50 50 # Take the first as the default project 51 $proj = (keys %pbrc)[0]; 52 print $LOG "Using $proj as default project as none has been specified\n" if (($debug >= 0) and (defined $proj)); 53 } 54 die "No project defined - use env var PBPROJ or -p proj" if (not (defined $proj)); 51 $proj = (keys %pbconf)[0]; 52 if (($debug >= 0) and (defined $proj)) { 53 print $LOG "WARNING: using $proj as default project as none has been specified\n" 54 print $LOG "Please create a pbconf reference for project $proj in $ENV{'PBETC'}\nif you want to use another project\n"; 55 } 56 } 57 die "No project defined - use env var PBPROJ or -p proj or a pbconf entry in $ENV{'PBETC'}" if (not (defined $proj)); 58 59 # That's always the environment variable that will be used 60 $ENV{'PBPROJ'} = $proj; 61 62 if (not defined ($pbconf{$ENV{'PBPROJ'}})) { 63 die "Please create a pbconf reference for project $ENV{'PBPROJ'} in $ENV{'PBETC'}\n"; 64 } 65 66 # 67 # Detect the root dir for hosting all the content generated with pb 68 # 69 my ($pbroot) = pb_conf_get_if("pbroot"); 70 my %pbroot = %$pbroot; 71 72 if (not defined $ENV{'PBROOT'}) { 73 if (not defined ($pbroot{$ENV{'PBPROJ'}})) { 74 print $LOG "WARNING: no pbroot defined, using /var/cache\n"; 75 print $LOG "Please create a pbroot reference for project $ENV{'PBPROJ'} in $ENV{'PBETC'}\nif you want to use another directory\n"; 76 } 77 # That's always the environment variable that will be used 78 $ENV{'PBROOT'} = $pbroot{$ENV{'PBPROJ'}}; 79 } 80 # Expand potential env variable in it 81 eval { $ENV{'PBROOT'} =~ s/(\$ENV.+\})/$1/eeg }; 55 82 56 83 # 57 84 # Set delivery directory 58 85 # 59 if (not defined ($pbrc{$proj})) { 60 die "Please create a pbrc reference for project $proj in $ENV{'PBETC'}\n"; 61 } 62 63 my $topdir=dirname($pbrc{$proj}); 64 # Expand potential env variable in it 65 eval { $topdir =~ s/(\$ENV.+\})/$1/eeg }; 66 chdir $topdir || die "Unable to change directory to $topdir"; 67 $pbrc{$proj} = $topdir."/pbrc"; 68 $ENV{'PBDESTDIR'}=$topdir."/delivery"; 69 70 # 71 # Use project configuration file if needed 72 # 73 if (not defined $ENV{'PBROOT'}) { 74 if (-f $pbrc{$proj}) { 75 my ($pbroot) = pb_conf_read($pbrc{$proj},"pbroot"); 76 my %pbroot = %$pbroot; 77 # All lines should point to the same pbroot so take the first 78 $ENV{'PBROOT'} = (values %$pbroot)[0] if (defined $pbroot); 79 print $LOG "Using $ENV{'PBROOT'} as default pbroot from $pbrc{$proj}\n" if (($debug >= 0) and (defined $ENV{'PBROOT'})); 80 } 81 die "No pbroot defined - use env var PBROOT or -r pbroot " if (not defined $ENV{'PBROOT'}); 82 } 83 84 # 85 # Check pb conf compliance 86 # 87 $ENV{'PBCONF'} = "$ENV{'PBROOT'}/pbconf"; 86 $ENV{'PBDESTDIR'}="$ENV{'PBROOT'}/$ENV{'PBPROJ'}/delivery"; 87 88 # 89 # Removes all directory existing below the delivery dir 90 # as they are temp dir only 91 # Files stay and have to be cleaned up manually if needed 92 # those files serves as communication channels between pb phases 93 # Removing them prevents a following phase to detect what has been done before 94 # 95 if (-d $ENV{'PBDESTDIR'}) { 96 opendir(DIR,$ENV{'PBDESTDIR'}) || die "Unable to open directory $ENV{'PBDESTDIR'}: $!"; 97 foreach my $d (readdir(DIR)) { 98 next if ($d =~ /^\./); 99 next if (-f "$ENV{'PBDESTDIR'}/$d"); 100 pb_rm_rf("$ENV{'PBDESTDIR'}/$d") if (-d "$ENV{'PBDESTDIR'}/$d"); 101 } 102 closedir(DIR); 103 } 104 if (! -d "$ENV{'PBDESTDIR'}") { 105 pb_mkdir_p($ENV{'PBDESTDIR'}) || die "Unable to recursively create $ENV{'PBDESTDIR'}"; 106 } 107 108 # 109 # Set build directory 110 # 111 $ENV{'PBBUILDDIR'}="$ENV{'PBROOT'}/$ENV{'PBPROJ'}/build"; 112 if (! -d "$ENV{'PBBUILDDIR'}") { 113 pb_mkdir_p($ENV{'PBBUILDDIR'}) || die "Unable to recursively create $ENV{'PBBUILDDIR'}"; 114 } 115 116 # 117 # Set temp directory 118 # 119 if (not defined $ENV{'TMPDIR'}) { 120 $ENV{'TMPDIR'}="/tmp"; 121 } 122 $ENV{'PBTMP'} = tempdir( "pb.XXXXXXXXXX", DIR => $ENV{'TMPDIR'}, CLEANUP => 1 ); 123 124 # Not sure it'll still be needed 125 #$pbrc{$ENV{'PBPROJ'}} = $topdir."/pbrc"; 126 127 # 128 # Check pbconf compliance 129 # 130 $ENV{'PBCONF'} = "$ENV{'PBROOT'}/$ENV{'PBPROJ'}/pbconf"; 131 if (not -d "$ENV{'PBCONF'}") { 132 pb_mkdir_p("$ENV{'PBCONF'}"); 133 } 134 135 88 136 if (defined $pbinit) { 89 137 print $LOG "Creating $ENV{'PBCONF'} directory\n"; 90 138 pb_mkdir_p("$ENV{'PBCONF'}"); 91 139 } 92 die "Project $ projnot Project-Builder compliant. Please populate $ENV{'PBCONF'}" if ( not -d "$ENV{'PBCONF'}");140 die "Project $ENV{'PBPROJ'} not Project-Builder compliant. Please populate $ENV{'PBCONF'}" if ( not -d "$ENV{'PBCONF'}"); 93 141 94 142 my %version = (); … … 98 146 my %supfiles = (); 99 147 100 if ((-f "$ENV{'PBCONF'}/$ proj.pb") and (not defined $pbinit)) {148 if ((-f "$ENV{'PBCONF'}/$ENV{'PBPROJ'}.pb") and (not defined $pbinit)) { 101 149 # List of pkg to build by default (mandatory) 150 my ($defpkgdir) = pb_conf_get("defpkgdir"); 102 151 # List of additional pkg to build when all is called (optional) 103 152 # Valid version names (optional) 104 153 # List of files to filter (optional) 105 my ($defpkgdir, $extpkgdir, $version, $filteredfiles, $supfiles, $pkgv, $pkgt) = pb_conf_read("$ENV{'PBCONF'}/$proj.pb","defpkgdir","extpkgdir","version","filteredfiles","supfiles","projver","projtag"); 154 # Project version and tag (optional) 155 my ($extpkgdir, $version, $filteredfiles, $supfiles, $pkgv, $pkgt) = pb_conf_get_if("extpkgdir","version","filteredfiles","supfiles","projver","projtag"); 106 156 print "DEBUG: defpkgdir: ".Dumper($defpkgdir)."\n" if ($debug >= 1); 107 157 print "DEBUG: extpkgdir: ".Dumper($extpkgdir)."\n" if ($debug >= 1); … … 109 159 print "DEBUG: filteredfiles: ".Dumper($filteredfiles)."\n" if ($debug >= 1); 110 160 print "DEBUG: supfiles: ".Dumper($supfiles)."\n" if ($debug >= 1); 111 die "Unable to find defpkgdir in $ENV{'PBCONF'}/$ proj.pb" if (not defined $defpkgdir);161 die "Unable to find defpkgdir in $ENV{'PBCONF'}/$ENV{'PBPROJ'}.pb" if (not defined $defpkgdir); 112 162 # Global 113 163 %defpkgdir = %$defpkgdir; 114 # Global115 164 %extpkgdir = %$extpkgdir if (defined $extpkgdir); 116 165 %version = %$version if (defined $version); 117 # Global118 166 %filteredfiles = %$filteredfiles if (defined $filteredfiles); 119 167 %supfiles = %$supfiles if (defined $supfiles); … … 123 171 124 172 if (not defined $ENV{'PBVER'}) { 125 if ((defined $pkgv) && (defined $pkgv->{$ proj})) {126 $ENV{'PBVER'}=$pkgv->{$ proj};173 if ((defined $pkgv) && (defined $pkgv->{$ENV{'PBPROJ'}})) { 174 $ENV{'PBVER'}=$pkgv->{$ENV{'PBPROJ'}}; 127 175 } else { 128 die "No projver found in $ENV{'PBCONF'}/$ proj.pb";176 die "No projver found in $ENV{'PBCONF'}/$ENV{'PBPROJ'}.pb"; 129 177 } 130 178 } 131 die "Invalid version name $ENV{'PBVER'} in $ENV{'PBCONF'}/$ proj.pb" if (($ENV{'PBVER'} !~ /[0-9.]+/) && (not defined $version) && ($ENV{'PBVER'} =~ /$version{$proj}/));179 die "Invalid version name $ENV{'PBVER'} in $ENV{'PBCONF'}/$ENV{'PBPROJ'}.pb" if (($ENV{'PBVER'} !~ /[0-9.]+/) && (not defined $version) && ($ENV{'PBVER'} =~ /$version{$ENV{'PBPROJ'}}/)); 132 180 133 181 if (not defined $ENV{'PBTAG'}) { 134 if ((defined $pkgt) && (defined $pkgt->{$ proj})) {135 $ENV{'PBTAG'}=$pkgt->{$ proj};182 if ((defined $pkgt) && (defined $pkgt->{$ENV{'PBPROJ'}})) { 183 $ENV{'PBTAG'}=$pkgt->{$ENV{'PBPROJ'}}; 136 184 } else { 137 die "No projtag found in $ENV{'PBCONF'}/$ proj.pb";185 die "No projtag found in $ENV{'PBCONF'}/$ENV{'PBPROJ'}.pb"; 138 186 } 139 187 } 140 die "Invalid tag name $ENV{'PBTAG'} in $ENV{'PBCONF'}/$ proj.pb" if ($ENV{'PBTAG'} !~ /[0-9.]+/);188 die "Invalid tag name $ENV{'PBTAG'} in $ENV{'PBCONF'}/$ENV{'PBPROJ'}.pb" if ($ENV{'PBTAG'} !~ /[0-9.]+/); 141 189 } else { 142 190 if (defined $pbinit) { 143 open(CONF,"> $ENV{'PBCONF'}/$ proj.pb") || die "Unable to create $ENV{'PBCONF'}/$proj.pb";191 open(CONF,"> $ENV{'PBCONF'}/$ENV{'PBPROJ'}.pb") || die "Unable to create $ENV{'PBCONF'}/$ENV{'PBPROJ'}.pb"; 144 192 print CONF << "EOF"; 145 193 # 146 194 # Project Builder configuration file 147 # For project $ proj195 # For project $ENV{'PBPROJ'} 148 196 # 149 197 # \$Id\$ … … 153 201 # Which CMS system is used (Subversion, CVS or tar file content extracted) 154 202 # 155 #cms $ proj= svn156 #cms $ proj= cvs157 #cms $ proj= flat203 #cms $ENV{'PBPROJ'} = svn 204 #cms $ENV{'PBPROJ'} = cvs 205 #cms $ENV{'PBPROJ'} = flat 158 206 159 207 # 160 208 # Packager label 161 209 # 162 #packager $ proj = "William Porte <bill\@$proj.org>"210 #packager $ENV{'PBPROJ'} = "William Porte <bill\@$ENV{'PBPROJ'}.org>" 163 211 # 164 212 … … 166 214 # Needs hostname, account and directory 167 215 # 168 #sshhost $ proj = www.$proj.org169 #sshlogin $ proj= bill170 #sshdir $ proj = /$proj/ftp171 #sshport $ proj= 22216 #sshhost $ENV{'PBPROJ'} = www.$ENV{'PBPROJ'}.org 217 #sshlogin $ENV{'PBPROJ'} = bill 218 #sshdir $ENV{'PBPROJ'} = /$ENV{'PBPROJ'}/ftp 219 #sshport $ENV{'PBPROJ'} = 22 172 220 173 221 # … … 178 226 # a QEMU rhel_3 here means that the VM will be named rhel_3.qemu 179 227 # 180 #vmlist $ proj= mandrake_10.1,mandrake_10.2,mandriva_2006.0,mandriva_2007.0,mandriva_2007.1,mandriva_2008.0,redhat_7.3,redhat_9,fedora_4,fedora_5,fedora_6,fedora_7,rhel_3,rhel_4,rhel_5,suse_10.0,suse_10.1,suse_10.2,suse_10.3,sles_9,sles_10,gentoo_nover,debian_3.1,debian_4.0,ubuntu_6.06,ubuntu_7.04,ubuntu_7.10228 #vmlist $ENV{'PBPROJ'} = mandrake_10.1,mandrake_10.2,mandriva_2006.0,mandriva_2007.0,mandriva_2007.1,mandriva_2008.0,redhat_7.3,redhat_9,fedora_4,fedora_5,fedora_6,fedora_7,rhel_3,rhel_4,rhel_5,suse_10.0,suse_10.1,suse_10.2,suse_10.3,sles_9,sles_10,gentoo_nover,debian_3.1,debian_4.0,ubuntu_6.06,ubuntu_7.04,ubuntu_7.10 181 229 182 230 # 183 231 # Valid values for vmtype are 184 232 # qemu, (vmware, xen, ... TBD) 185 #vmtype $ proj= qemu233 #vmtype $ENV{'PBPROJ'} = qemu 186 234 187 235 # Hash for VM stuff on vmtype … … 189 237 190 238 # We suppose we can commmunicate with the VM through SSH 191 #vmhost $ proj= localhost192 #vmlogin $ proj= pb193 #vmport $ proj= 2222239 #vmhost $ENV{'PBPROJ'} = localhost 240 #vmlogin $ENV{'PBPROJ'} = pb 241 #vmport $ENV{'PBPROJ'} = 2222 194 242 195 243 # Timeout to wait when VM is launched/stopped … … 197 245 198 246 # per VMs needed paramaters 199 #vmopt $ proj= -m 384 -daemonize200 #vmpath $ proj= /home/qemu201 #vmsize $ proj= 5G247 #vmopt $ENV{'PBPROJ'} = -m 384 -daemonize 248 #vmpath $ENV{'PBPROJ'} = /home/qemu 249 #vmsize $ENV{'PBPROJ'} = 5G 202 250 203 251 # 204 252 # Global version/tag for the project 205 253 # 206 #projver $ proj= devel207 #projtag $ proj= 1254 #projver $ENV{'PBPROJ'} = devel 255 #projtag $ENV{'PBPROJ'} = 1 208 256 209 257 # Adapt to your needs: … … 241 289 # 242 290 # PBSRC is replaced by the source package format 243 #filter PBSRC = ftp://ftp.$ proj.org/src/%{name}-%{version}.tar.gz291 #filter PBSRC = ftp://ftp.$ENV{'PBPROJ'}.org/src/%{name}-%{version}.tar.gz 244 292 245 293 # PBVER is replaced by the version (\$pbver in code) … … 268 316 269 317 # PBURL contains the URL of the Web site of the project 270 #filter PBURL = http://www.$ proj.org318 #filter PBURL = http://www.$ENV{'PBPROJ'}.org 271 319 EOF 272 320 close(CONF); … … 329 377 open(CONF,"> $ENV{'PBCONF'}/pbfilter/md.pbf") || die "Unable to create $ENV{'PBCONF'}/pbfilter/md.pbf"; 330 378 print CONF << "EOF"; 331 # Specific group for Mandriva for $ proj379 # Specific group for Mandriva for $ENV{'PBPROJ'} 332 380 filter PBGRP = Archiving/Backup 333 381 EOF … … 335 383 open(CONF,"> $ENV{'PBCONF'}/pbfilter/novell.pbf") || die "Unable to create $ENV{'PBCONF'}/pbfilter/novell.pbf"; 336 384 print CONF << "EOF"; 337 # Specific group for SuSE for $ proj385 # Specific group for SuSE for $ENV{'PBPROJ'} 338 386 filter PBGRP = Productivity/Archiving/Backup 339 387 EOF … … 369 417 370 418 The current upstream source was downloaded from 371 ftp://ftp.$ proj.org/src/.419 ftp://ftp.$ENV{'PBPROJ'}.org/src/. 372 420 373 421 Upstream Authors: Put their name here … … 609 657 print "After having renamed the pkg1 directory to your package's name \n\n"; 610 658 } else { 611 die "Unable to open $ENV{'PBCONF'}/$proj.pb"; 612 } 613 } 614 615 # 616 # Set temp directory 617 # 618 if (not defined $ENV{'TMPDIR'}) { 619 $ENV{'TMPDIR'}="/tmp"; 620 } 621 $ENV{'PBTMP'} = tempdir( "pb.XXXXXXXXXX", DIR => $ENV{'TMPDIR'}, CLEANUP => 1 ); 622 623 # 624 # Removes all directory existing below the delivery dir 625 # as they are temp dir only 626 # Files stay and have to be cleaned up manually 627 # 628 if (-d $ENV{'PBDESTDIR'}) { 629 opendir(DIR,$ENV{'PBDESTDIR'}) || die "Unable to open directory $ENV{'PBDESTDIR'}: $!"; 630 foreach my $d (readdir(DIR)) { 631 next if ($d =~ /^\./); 632 next if (-f "$ENV{'PBDESTDIR'}/$d"); 633 pb_rm_rf("$ENV{'PBDESTDIR'}/$d") if (-d "$ENV{'PBDESTDIR'}/$d"); 634 } 635 closedir(DIR); 636 } 637 if (! -d "$ENV{'PBDESTDIR'}") { 638 pb_mkdir_p($ENV{'PBDESTDIR'}) || die "Unable to recursively create $ENV{'PBDESTDIR'}"; 639 } 640 641 # 642 # Set build directory 643 # 644 $ENV{'PBBUILDDIR'}=$topdir."/build"; 645 if (! -d "$ENV{'PBBUILDDIR'}") { 646 pb_mkdir_p($ENV{'PBBUILDDIR'}) || die "Unable to recursively create $ENV{'PBBUILDDIR'}"; 647 } 648 659 die "Unable to open $ENV{'PBCONF'}/$ENV{'PBPROJ'}.pb"; 660 } 661 } 649 662 umask 0022; 650 return($ proj,$debug,$LOG,\%pbrc, \%filteredfiles, \%supfiles, \%defpkgdir, \%extpkgdir);663 return($debug,$LOG,\%pbconf, \%filteredfiles, \%supfiles, \%defpkgdir, \%extpkgdir); 651 664 } 652 665 … … 706 719 707 720 my @param = @_; 721 my @return = pb_conf_get_if(@param); 722 723 die "No params found for $ENV{'PBPROJ'}" if (not defined @return); 724 725 foreach my $i (0..$#param) { 726 die "No $param[$i] defined for $ENV{'PBPROJ'}" if (not defined $return[$i]); 727 } 728 return(@return); 729 } 730 731 # Function which returns a pointer on a table 732 # corresponding to a set of values queried in the conf file 733 # Those value may be undef if they do not exist 734 sub pb_conf_get_if { 735 736 my @param = @_; 708 737 709 738 # Everything is returned via ptr1 710 my @ptr1 = pb_conf_read ("$ENV{'PBETC'}", @param);711 my @ptr2 = pb_conf_read ("$ENV{'PBCONF'}/$ENV{'PBPROJ'}.pb", @param);739 my @ptr1 = pb_conf_read_if("$ENV{'PBETC'}", @param); 740 my @ptr2 = pb_conf_read_if("$ENV{'PBCONF'}/$ENV{'PBPROJ'}.pb", @param); 712 741 713 742 my $p1; … … 720 749 $p1 = $ptr1[$i]; 721 750 $p2 = $ptr2[$i]; 722 die "No $param[$i] defined for $ENV{'PBPROJ'}" if ((not @ptr1) && (not @ptr2));723 die "No $param[$i] defined for $ENV{'PBPROJ'}" if ((not defined $p1) && (not defined $p2));724 751 # Always try to take the param from the home dir conf file in priority 725 752 # in order to mask what could be defined under the CMS to allow for overloading … … 750 777 } 751 778 } 752 die "No $param[$i] defined for $ENV{'PBPROJ'}" if (not defined $p1->{$ENV{'PBPROJ'}});753 779 $ptr1[$i] = $p1; 754 780 #print "DEBUG: param ptr1: ".Dumper(@ptr1)."\n"; # if ($debug >= 1); 755 781 } 756 782 return(@ptr1); 783 } 784 785 # Function which returns a pointer on a hash 786 # corresponding to a declaration (arg2) in a conf file (arg1) 787 # if that conf file doesn't exist returns undef 788 sub pb_conf_read_if { 789 790 my $conffile = shift; 791 my @param = @_; 792 793 open(CONF,$conffile) || return((undef)); 794 close(CONF); 795 return(pb_conf_read($conffile,@param)); 757 796 } 758 797 … … 785 824 } 786 825 787 # Setup environment for CMS system 826 # Analyze a url passed and return protocol, account, password, server, port, path 827 sub pb_get_url { 828 829 my $url = shift || undef; 830 831 # A URL has the format protocol://ac@host[:port][path[?query][#fragment]]. 832 my $url_regex = "([a-z]+?)://([-\w]+.[-\w.]*)(\d+)?(/.*)?"; 833 834 my ($proto,$account,$passwd,$server,$port,$path) = ; 835 } 836 837 838 # Setup environment for CMS system for URL passed 788 839 sub pb_cms_init { 789 840 … … 809 860 # Export content if needed 810 861 # 811 my ($cvsrsh) = pb_conf_get ("cvsrsh");862 my ($cvsrsh) = pb_conf_get_if("cvsrsh"); 812 863 $ENV{'CVS_RSH'} = $cvsrsh->{$proj} if (defined $cvsrsh->{$proj}); 813 864 } else {
Note:
See TracChangeset
for help on using the changeset viewer.