| P4-C4 documentation | Contained in the P4-C4 distribution. |
P4::C4::Info - Perforce Info parsing
use P4::C4::Info; my $p4 = new P4::C4; return $p4->clientRoot(); return $p4->serverVersion(); ...
This module provides utilities to operate on Perforce global information.
Returns the root directory of the client. Note this is cached as long as the parent object exists.
Returns the server version of the client. Note this is cached as long as the parent object exists.
The latest version is available from CPAN and from http://www.veripool.com/.
Copyright 2002-2005 by Wilson Snyder. This package is free software; you can redistribute it and/or modify it under the terms of either the GNU Lesser General Public License or the Perl Artistic License.
Wilson Snyder <wsnyder@wsnyder.org>
P4::Client, P4::C4
| P4-C4 documentation | Contained in the P4-C4 distribution. |
# $Revision: 709 $$Date: 2005-05-03 17:32:07 -0400 (Tue, 03 May 2005) $$Author: wsnyder $ # Author: Wilson Snyder <wsnyder@wsnyder.org> ###################################################################### # # Copyright 2002-2005 by Wilson Snyder. This program is free software; # you can redistribute it and/or modify it under the terms of either the GNU # General Public License or the Perl Artistic License. # # 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 General Public License for more details. # ###################################################################### package P4::C4::Info; require 5.006_001; use strict; use vars qw($VERSION); use Carp; ###################################################################### #### Configuration Section our $VERSION = '2.041'; ####################################################################### ####################################################################### ####################################################################### # Info Interface package P4::C4::Info::UI; use P4::C4::UI; use strict; our @ISA = qw( P4::C4::UI ); sub OutputInfo { my $self = shift; my $level = shift; my $data = shift; if ($level==0) { print __PACKAGE__.": $level: $data\n" if $P4::C4::Debug; if ($data =~ /^Client root:\s+(.*)$/i) { $self->{c4self}{clientRoot} = $1; } elsif ($data =~ /^Server version:\s+(.*)$/i) { $self->{c4self}{serverVersion} = $1; } } else { die "$0: %Error: Bad p4 response: $data\n"; } } ####################################################################### ####################################################################### ####################################################################### # OVERRIDE METHODS package P4::C4; sub _infoFetch { my $self = shift; print "_infoFetch\n" if $P4::C4::Debug; my $ui = new P4::C4::Info::UI(c4self=>$self); $self->Run($ui,'info'); } sub clientRoot { my $self = shift; if (!$self->{clientRoot}) { $self->_infoFetch(); print "clientRoot = ",$self->{clientRoot}||"","\n" if $P4::C4::Debug; } return $self->{clientRoot}; # Cached in $self } sub serverVersion { my $self = shift; if (!$self->{serverVersion}) { $self->_infoFetch(); print "serverVersion = ",$self->{serverVersion}||"","\n" if $P4::C4::Debug; } return $self->{serverVersion}; # Cached in $self } ###################################################################### ### Package return 1; __END__