MySQL::Admin::Config - config for MySQL::Admin


MySQL-Admin documentation Contained in the MySQL-Admin distribution.

Index


Code Index:

NAME

Top

MySQL::Admin::Config - config for MySQL::Admin

DESCRIPTION

Top

see MySQL::Admin::GUI

EXPORT

loadConfig() saveConfig() $config

Public

Top

new()

loadConfig()

saveConfig()

Private

Top

getSelf()

see HTML::Menu::TreeView

see Also

CGI MySQL::Admin MySQL::Admin::Actions MySQL::Admin::Translate MySQL::Admin::Settings MySQL::Admin::Config

AUTHOR

Top

Dirk Lindner <lze@cpan.org>

LICENSE

Top

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;