X-Git-Url: https://git.deb.at/?p=deb%2Fpackages.git;a=blobdiff_plain;f=lib%2FPackages%2FConfig.pm;fp=lib%2FPackages%2FConfig.pm;h=d2efe2fa885741d1155e6cf0afd3c2fc635c06a0;hp=0000000000000000000000000000000000000000;hb=5ca21f1ba07a6b559395bec8d6bc1e528eb238d1;hpb=87124f967c3da82618899b3d2c114981b12ffb7f diff --git a/lib/Packages/Config.pm b/lib/Packages/Config.pm new file mode 100644 index 0000000..d2efe2f --- /dev/null +++ b/lib/Packages/Config.pm @@ -0,0 +1,66 @@ +package Packages::Config; + +use strict; +use warnings; + +use Exporter; +use Packages::CGI; + +our @ISA = qw( Exporter ); + +our ( $TOPDIR, $DBDIR, $ROOT, $HOME, $CONTACT_MAIL, $WEBMASTER_MAIL, + $SEARCH_PAGE, $SEARCH_CGI, $SEARCH_URL, + $SRC_SEARCH_URL, $CONTENTS_SEARCH_CGI, + $CN_HELP_URL, $BUG_URL, $SRC_BUG_URL, $QA_URL, $DDPO_URL, + @SUITES, @SECTIONS, @ARCHIVES, @ARCHITECTURES, + %FTP_SITES ); +our @EXPORT_OK = qw( $TOPDIR $DBDIR $ROOT $HOME $CONTACT_MAIL + $WEBMASTER_MAIL + $SEARCH_PAGE $SEARCH_CGI $SEARCH_URL + $SRC_SEARCH_URL $CONTENTS_SEARCH_CGI + $CN_HELP_URL $BUG_URL $SRC_BUG_URL $QA_URL $DDPO_URL + @SUITES @SECTIONS @ARCHIVES @ARCHITECTURES + %FTP_SITES ); +our %EXPORT_TAGS = ( all => [ @EXPORT_OK ] ); + +our $config_read_time; + +sub init { + my ($dir) = @_; + my $modtime = (stat( "$dir/config.sh" ))[9]; + $config_read_time ||= 0; + if ($modtime > $config_read_time) { + if (!open (C, '<', "$dir/config.sh")) { + error( "Internal: Cannot open configuration file." ); + } + while () { + next if /^\s*\#/o; + chomp; + $TOPDIR = $1 if /^\s*topdir="?([^\"]*)"?\s*$/o; + $ROOT = $1 if /^\s*root="?([^\"]*)"?\s*$/o; + $HOME = $1 if /^\s*home="?([^\"]*)"?\s*$/o; + $SEARCH_CGI = $1 if /^\s*search_cgi="?([^\"]*)"?\s*$/o; + $SEARCH_PAGE = $1 if /^\s*search_page="?([^\"]*)"?\s*$/o; + $SEARCH_URL = $1 if /^\s*search_url="?([^\"]*)"?\s*$/o; + $SRC_SEARCH_URL = $1 if /^\s*search_src_url="?([^\"]*)"?\s*$/o; + $WEBMASTER_MAIL = $1 if /^\s*webmaster="?([^\"]*)"?\s*$/o; + $CONTACT_MAIL = $1 if /^\s*contact="?([^\"]*)"?\s*$/o; + $BUG_URL = $1 if /^\s*bug_url="?([^\"]*)"?\s*$/o; + $SRC_BUG_URL = $1 if /^\s*src_bug_url="?([^\"]*)"?\s*$/o; + $QA_URL = $1 if /^\s*qa_url="?([^\"]*)"?\s*$/o; + $DDPO_URL = $1 if /^\s*ddpo_url="?([^\"]*)"?\s*$/o; + $FTP_SITES{us} = $1 if /^\s*ftpsite="?([^\"]*)"?\s*$/o; + $FTP_SITES{$1} = $2 if /^\s*(\w+)_ftpsite="?([^\"]*)"?\s*$/o; + @SUITES = split(/\s+/, $1) if /^\s*suites="?([^\"]*)"?\s*$/o; + @SECTIONS = split(/\s+/, $1) if /^\s*sections="?([^\"]*)"?\s*$/o; + @ARCHIVES = split(/\s+/, $1) if /^\s*archives="?([^\"]*)"?\s*$/o; + @ARCHITECTURES = split(/\s+/, $1) if /^\s*architectures="?([^\"]*)"?\s*$/o; + } + close (C); + debug( "read config ($modtime > $config_read_time)" ); + $config_read_time = $modtime; + } + $DBDIR = "$TOPDIR/files/db"; +} + +1;