| perl-Hardware-UPS-Perl documentation | Contained in the perl-Hardware-UPS-Perl distribution. |
Hardware::UPS::Perl::Constants - general constants for UPS modules and scripts
use Hardware::UPS::Perl::Constants qw(
UPSBASENAME
UPSEXECUTABLE
UPSFQDN
UPSHOSTNAME
UPSLOGFILE
UPSMAILTO
UPSPIDFILE
UPSPORT
UPSTCPPORT
);
print STDOUT UPSBASENAME, "\n";
print STDOUT UPSEXECUTABLE, "\n";
print STDOUT UPSFQDN, "\n";
print STDOUT UPSHOSTNAME, "\n";
print STDOUT UPSLOGFILE, "\n";
print STDOUT UPSMAILTO, "\n";
print STDOUT UPSPIDFILE, "\n";
print STDOUT UPSPORT, "\n";
print STDOUT UPSSCRIPT, "\n";
print STDOUT UPSTCPPORT, "\n";
Hardware::UPS::Perl::Constants provides general constants required for dealing with an UPS.
The basename of the calling script. This constant is determined at runtime using package File::Basename.
The full path name of the calling script. This constant is determined at runtime from $UPSBASENAME using the packages File::Spec::Functions and FindBin. This might be useful for restarting a program.
The fully qualified domain name of the local host. The constant is determined at runtime using the Perl5 extension package Net::Domain.
The hostname of the local host. The constant is determined at runtime using the Perl5 extension package Net::Domain.
The default log file /var/log/UPSSCRIPT.log.
The default mail address to send mails to in case of alerts. This variable is identical to the environment variable UPS_MAILTO.
The default PID file /var/run/UPSSCRIPT.pid.
The default serial port for a local UPS. This constant is set to /dev/ttyS0 unless overriden by the environment variable UPS_PORT.
The name of the calling script. This constant is determined at runtime from UPSBASENAME.
The default TCP/IP port where a remote Hardware::UPS::Perl agent can be found. This constant is set to 9050 unless overriden by the environment variable UPS_TCPPORT.
Env(3pm), File::Basename(3pm), File::Spec::Functions(3pm), FindBin(3pm), Net::Domain(3pm), constant(3pm), Hardware::UPS::Perl::Connection(3pm), Hardware::UPS::Perl::Connection::Net(3pm), Hardware::UPS::Perl::Connection::Serial(3pm), Hardware::UPS::Perl::Driver(3pm), Hardware::UPS::Perl::Driver::Megatec(3pm), Hardware::UPS::Perl::General(3pm), Hardware::UPS::Perl::Logging(3pm), Hardware::UPS::Perl::PID(3pm), Hardware::UPS::Perl::Utils(3pm)
There are plenty of them for sure. Maybe the embedded pod documentation has to be revised a little bit.
Suggestions to improve Hardware::UPS::Perl::Constants are welcome, though due to the lack of time it might take a while to incorporate them.
Copyright (c) 2007 by Christian Reile, <Christian.Reile@t-online.de>. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. For further licensing details, please see the file COPYING in the distribution.
| perl-Hardware-UPS-Perl documentation | Contained in the perl-Hardware-UPS-Perl distribution. |
package Hardware::UPS::Perl::Constants; #============================================================================== # package description: #============================================================================== # This package defines the following variables to be used in Perl modules and # scripts dealing with an UPS. For a detailed description see the pod # documentation included at the end of this file. # # Constants: # ---------- # UPSBASENAME - the basename of the script # UPSEXECUTABLE - the complete path to the script # UPSFQDN - the FQDN of the local host # UPSHOSTNAME - the hostname of the local host # UPSLOGFILE - the default log file # UPSMAILTO - the default address to send mails to in case of alerts # UPSPIDFILE - the standard PID file # UPSPORT - the default serial port # UPSSCRIPT - script name # UPSTCPPORT - the default TCP/IP port for network communication # #============================================================================== #============================================================================== # Copyright: #============================================================================== # Copyright (c) 2007 Christian Reile, <Christian.Reile@t-online.de>. All # rights reserved. This program is free software; you can redistribute it # and/or modify it under the same terms as Perl itself. #============================================================================== #============================================================================== # Entries for Revision Control: #============================================================================== # Revision : $Revision: 1.7 $ # Author : $Author: creile $ # Last Modified On: $Date: 2007/04/14 09:37:26 $ # Status : $State: Exp $ #------------------------------------------------------------------------------ # Modifications : #------------------------------------------------------------------------------ # # $Log: Constants.pm,v $ # Revision 1.7 2007/04/14 09:37:26 creile # documentation update. # # Revision 1.6 2007/04/07 15:13:47 creile # adaptations to "best practices" style; # update of documentation. # # Revision 1.5 2007/03/13 17:18:04 creile # some beautifications. # # Revision 1.4 2007/03/03 21:09:03 creile # usage of perl pragma constant declaring everything as # real constants. # # Revision 1.3 2007/02/05 20:32:36 creile # almost all constants are in @EXPORT_OK now; # pod documentation revised. # # Revision 1.2 2007/02/04 19:01:31 creile # bug fix of pod documentation. # # Revision 1.1 2007/02/03 16:44:50 creile # initial revision. # # #============================================================================== #============================================================================== # module preamble: #============================================================================== use strict; BEGIN { use Exporter (); use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); $VERSION = sprintf( "%d.%02d", q$Revision: 1.7 $ =~ /(\d+)\.(\d+)/ ); @ISA = qw(Exporter); @EXPORT = qw( ); @EXPORT_OK = qw( UPSBASENAME UPSEXECUTABLE UPSFQDN UPSHOSTNAME UPSMAILTO UPSLOGFILE UPSPIDFILE UPSPORT UPSSCRIPT UPSTCPPORT ); %EXPORT_TAGS = qw(); } use vars @EXPORT; #============================================================================== # end of module preamble #============================================================================== #============================================================================== # packages required: #------------------------------------------------------------------------------ # # constant - Perl pragma to declare constants # Env - Perl module that imports environment variables # as scalars or arrays # File::Basename - Parse file paths into directory, filename and # suffix # File::Spec::Functions - portably perform operations on file names # FindBin - Locate directory of original perl script # Net::Domain - evaluate the current host's internet name and # domain # #============================================================================== use Env qw( UPS_MAILTO UPS_PORT UPS_TCPPORT ); use File::Basename (); use File::Spec::Functions; use FindBin (); use Net::Domain; #============================================================================== # defining exported constants: #============================================================================== use constant UPSFQDN => Net::Domain->hostfqdn(); use constant UPSHOSTNAME => Net::Domain->hostname(); use constant UPSMAILTO => $UPS_MAILTO ? $UPS_MAILTO : q{}; use constant UPSPORT => $UPS_PORT ? $UPS_PORT : "/dev/ttyS0"; use constant UPSTCPPORT => $UPS_TCPPORT ? $UPS_TCPPORT : "9050"; use constant UPSBASENAME => File::Basename::basename($0); use constant UPSEXECUTABLE => catfile $FindBin::Bin, UPSBASENAME; use constant UPSSCRIPT => sprintf( "%s", UPSBASENAME =~ /\.pl$/ ? $` =~ /(\w+)$/ : UPSBASENAME =~ /(\w+)$/ ); use constant UPSLOGFILE => "/var/log/" . UPSSCRIPT . ".log"; use constant UPSPIDFILE => "/var/run/" . UPSSCRIPT . ".pid"; #============================================================================== # package return: #============================================================================== 1; __END__ #============================================================================== # embedded pod documentation: #==============================================================================