X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=contrib%2Fcollection3%2Fbin%2Fgraph.cgi;h=ba189dead65e069612902c437fe7308b07477377;hb=d53b2151ae583d6fc38b1a4dd49a3469635a84c8;hp=40408fd5551e703cb81fd2bfb13bbe50cc474065;hpb=8b695cf6f4fe477a6d44bce39af371510cd90f14;p=collectd.git diff --git a/contrib/collection3/bin/graph.cgi b/contrib/collection3/bin/graph.cgi index 40408fd5..ba189dea 100755 --- a/contrib/collection3/bin/graph.cgi +++ b/contrib/collection3/bin/graph.cgi @@ -30,8 +30,8 @@ BEGIN { if ($ENV{'SCRIPT_FILENAME'} =~ m{^(/.+)/bin/[^/]+$}) { - $BASE_DIR = $1; - unshift (@INC, "$BASE_DIR/lib"); + $::BASE_DIR = $1; + unshift (@::INC, "$::BASE_DIR/lib"); } } } @@ -48,20 +48,66 @@ use Collectd::Graph::Common (qw(sanitize_type get_selected_files epoch_to_rfc1123 flush_files)); use Collectd::Graph::Type (); -$::MODPERL = 1; - -my $have_init = 0; -sub init +sub base_dir { - if ($have_init) + if (defined $::BASE_DIR) + { + return ($::BASE_DIR); + } + + if (!defined ($ENV{'SCRIPT_FILENAME'})) { return; } - #gc_read_config ("$RealBin/../etc/collection.conf"); - gc_read_config ("$BASE_DIR/etc/collection.conf"); + if ($ENV{'SCRIPT_FILENAME'} =~ m{^(/.+)/bin/[^/]+$}) + { + $::BASE_DIR = $1; + return ($::BASE_DIR); + } - $have_init = 1; + return; +} + +sub lib_dir +{ + my $base = base_dir (); + + if ($base) + { + return "$base/lib"; + } + else + { + return "../lib"; + } +} + +sub sysconf_dir +{ + my $base = base_dir (); + + if ($base) + { + return "$base/etc"; + } + else + { + return "../etc"; + } +} + +sub init +{ + my $lib_dir = lib_dir (); + my $sysconf_dir = sysconf_dir (); + + if (!grep { $lib_dir eq $_ } (@::INC)) + { + unshift (@::INC, $lib_dir); + } + + gc_read_config ("$sysconf_dir/collection.conf"); } sub main @@ -74,6 +120,8 @@ sub main my $OutputFormat = 'PNG'; my $ContentType = 'image/png'; + init (); + if (param ('format')) { my $temp = param ('format') || ''; @@ -92,14 +140,12 @@ sub main if (param ('debug')) { print <