| MySQL-Admin documentation | Contained in the MySQL-Admin distribution. |
MySQL::Admin::Config - config for MySQL::Admin
loadConfig() saveConfig() $config
CGI MySQL::Admin MySQL::Admin::Actions MySQL::Admin::Translate MySQL::Admin::Settings MySQL::Admin::Config
Dirk Lindner <lze@cpan.org>
Copyright (C) 2005-2008 by Hr. Dirk Lindner
This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
| MySQL-Admin documentation | Contained in the MySQL-Admin distribution. |
package MySQL::Admin::Config; use strict; use warnings; require Exporter; use vars qw($config $DefaultClass @EXPORT @ISA $defaultconfig); @MySQL::Admin::Config::EXPORT = qw(loadConfig saveConfig $config); @ISA = qw(Exporter); $MySQL::Admin::Config::VERSION = '0.62'; $DefaultClass = 'MySQL::Admin::Config' unless defined $MySQL::Admin::Config::DefaultClass; $defaultconfig = '%CONFIG%';
sub new { my ($class, @initializer) = @_; my $self = {}; bless $self, ref $class || $class || $DefaultClass; return $self; }
sub loadConfig { my ($self, @p) = getSelf(@_); my $do = (defined $p[0]) ? $p[0] : $defaultconfig; if (-e $do) {do $do;} }
sub saveConfig { my ($self, @p) = getSelf(@_); my $saveAs = defined $p[0] ? $p[0] : $defaultconfig; $config = defined $p[1] ? $p[1] : $config; my $var = defined $p[2] ? $p[2] : 'config'; use Data::Dumper; my $content = Dumper($config); $content .= "\$$var =\$VAR1;"; use Fcntl qw(:flock); use Symbol; my $fh = gensym(); my $rsas = $saveAs =~ /^(\S+)$/ ? $1 : 0; if ($rsas) { open $fh, ">$rsas.bak" or warn "$/MySQL::Admin::Config::saveConfig$/ $! $/ File: $rsas $/Caller: " . caller() . $/; flock $fh, 2; seek $fh, 0, 0; truncate $fh, 0; print $fh $content; close $fh; } if (-e "$rsas.bak") { rename "$rsas.bak", $rsas or warn "$/MySQL::Admin::Config::saveConfig$/ $! $/ File: $rsas $/Caller: " . caller() . $/; do $rsas; } }
sub getSelf { return @_ if defined($_[0]) && (!ref($_[0])) && ($_[0] eq 'MySQL::Admin::Config'); return (defined($_[0]) && (ref($_[0]) eq 'MySQL::Admin::Config' || UNIVERSAL::isa($_[0], 'MySQL::Admin::Config'))) ? @_ : ($MySQL::Admin::Config::DefaultClass->new, @_); }
1;