# # modules/config.pm # # Developed by Lubomir Host 'rajo' # Copyright (c) 2005 Platon SDG, http://platon.sk/ # Licensed under terms of GNU General Public License. # All rights reserved. # # Changelog: # 2005-03-14 - created # # $Platon$ package config; use strict; use Carp; use Cwd; use File::Basename qw( basename fileparse ); use vars qw($VERSION $DEBUG @ISA @EXPORT $AUTOLOAD); @ISA = qw(Exporter); @EXPORT = qw( run runcount ); $VERSION = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/); $DEBUG = 0 unless defined $DEBUG; use vars qw ( $hostname $language $site_title $site_root $fastcgi_name $runlimit $site_base $site_base_uri $admin_base_uri $data_source $db_host $database $db_user $db_password ); # db config {{{ $data_source = 'mysql'; $db_host = 'localhost'; $database = 'system'; $db_user = 'syswatcher'; $db_password = ''; # }}} BEGIN { # {{{ $site_title = 'Network statistics'; $site_root = getcwd(); $hostname = `hostname -f`; $hostname =~ s/\s//g; # get name of FastCGI script my ($name, $path, $suffix) = fileparse($0, '.fcgi', '.cgi'); #$fastcgi_name = $name eq '' ? 'index' : $name; # default index $fastcgi_name = $name . $suffix; $language = $fastcgi_name eq 'index' ? 'en' : $fastcgi_name; if ($hostname =~ m/Idea/i) { $site_base = 'rajo.platon.sk/'; # protocol http:// or https:// is determined automatically $site_base_uri = '/'; $admin_base_uri = '/admin/'; } else { $site_base = "$hostname/~rajo/"; $site_base_uri = '/~rajo/'; $admin_base_uri = '/~rajo/admin/'; } $runlimit = 1000; } # }}} sub new { #{{{ my $this = shift; my $class = ref($this) || $this; my $self = { runcount => 0, runlimit => $runlimit, hostname => $hostname, site_title => $site_title, site_root => $site_root, site_base => $site_base, site_base_uri => $site_base_uri, admin_base_uri => $admin_base_uri, fastcgi_name => $fastcgi_name, language => $language, data_source => $data_source, database => $database, db_host => $db_host, db_user => $db_user, db_password => $db_password, }; bless $self, $class; return $self; } # }}} # check, if $runcount < $runlimit sub run() { # {{{ my $self = shift; return 1 if ($self->runcount < $self->runlimit); } # }}} run # return value of $self->{runcount} and increase value sub runcount() { # {{{ my $self = shift; return $self->{runcount}++; } # }}} runcount sub AUTOLOAD() { # {{{ my $self = shift; my $type = ref($self) || croak "$self is not object"; my $name = $AUTOLOAD; $name =~ s/.*://; unless (exists $self->{$name}) { croak "Can't access array '$name' in object class '$type'"; } if (@_) { return $self->{$name} = shift; } else { return $self->{$name}; } } # }}} sub DESTROY() { # {{{ my $self = shift; undef $self; } # }}} 1; 1; __END__ =head1 NAME config - <<>> =head1 SYNOPSIS use config; my $xxx = new config; =head1 DESCRIPTION The config module allows you ... <<>> =head2 EXPORT <>> =head1 SEE ALSO =head1 AUTHORS Lubomir Host 'rajo', =cut # vim: ts=4 # vim600: fdm=marker fdl=0 fdc=3