/usr/local/CPAN/Stem/Stem/Vars.pm
# File: Stem/Vars.pm
# This file is part of Stem.
# Copyright (C) 1999, 2000, 2001 Stem Systems, Inc.
# Stem is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# Stem 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 General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with Stem; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# For a license to use the Stem under conditions other than those
# described here, to purchase support for this software, or to purchase a
# commercial warranty contract, please contact Stem Systems at:
# Stem Systems, Inc. 781-643-7504
# 79 Everett St. info@stemsystems.com
# Arlington, MA 02474
# USA
package Stem::Vars ;
use strict ;
use Stem::Route ;
use base 'Exporter' ;
use vars qw( %Env @EXPORT ) ;
@EXPORT = qw( %Env ) ;
Stem::Route::register_class( __PACKAGE__, 'var', 'env' ) ;
sub new {
my( $class, %env ) = @_ ;
delete $env{ 'reg_name' } ;
@Env{ keys %env } = values %env ;
return ;
}
sub set_env_cmd {
my( $self, $msg ) = @_ ;
my( $data ) = $msg->data() ;
$data = ${$data} if ref $data ;
if ( my( $key, $val ) = $data =~ /^\s*(\w+)\s*=\s*(.+)$/ ) {
$val =~ s/\s+$// ;
$Env{ $key } = $val ;
}
return ;
}
sub get_env_cmd {
my( $self, $msg ) = @_ ;
my( $data ) = $msg->data() ;
$data = ${$data} if ref $data ;
return $Env{$data} ;
}
sub status_cmd {
my $text ;
$text = <<TEXT ;
Status of Stem Environment
TEXT
foreach my $key ( sort keys %Env ) {
my $val = $Env{$key} ;
$text .= sprintf( "\t%-24s = '$val'\n", $key ) ;
}
$text .= "\n\n" ;
return $text ;
}
1 ;