X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Flib%2FRT%2FInterface%2FCLI.pm;h=bcdc13cdf010dd8256f09defdb678b4c5088b1a4;hb=f3c4966ed1f6ec3db7accd6dcdd3a5a3821d72a7;hp=53315041567f5c9409b51acdae86c996693a777c;hpb=2dfda73eeb3eae2d4f894099754794ef07d060dd;p=freeside.git diff --git a/rt/lib/RT/Interface/CLI.pm b/rt/lib/RT/Interface/CLI.pm index 533150415..bcdc13cdf 100644 --- a/rt/lib/RT/Interface/CLI.pm +++ b/rt/lib/RT/Interface/CLI.pm @@ -1,40 +1,40 @@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC -# -# +# +# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +# +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work 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 this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,29 +43,15 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} -use strict; -use RT; package RT::Interface::CLI; +use strict; +use RT; - - -BEGIN { - use Exporter (); - use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); - - # set the version for version checking - $VERSION = do { my @r = (q$Revision: 1.1.1.7 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker - - @ISA = qw(Exporter); - - # your exported package globals go here, - # as well as any optionally exported functions - @EXPORT_OK = qw(&CleanEnv - &GetCurrentUser &GetMessageContent &debug &loc); -} +use base 'Exporter'; +our @EXPORT_OK = qw(CleanEnv GetCurrentUser GetMessageContent debug loc); =head1 NAME @@ -100,11 +86,6 @@ BEGIN { =head1 METHODS -=begin testing - -ok(require RT::Interface::CLI); - -=end testing =cut @@ -130,7 +111,6 @@ sub CleanEnv { my $CurrentUser; # shared betwen GetCurrentUser and loc -# {{{ sub GetCurrentUser =head2 GetCurrentUser @@ -150,7 +130,7 @@ sub GetCurrentUser { #If the current user is 0, then RT will assume that the User object #is that of the currentuser. - $CurrentUser = new RT::CurrentUser(); + $CurrentUser = RT::CurrentUser->new(); $CurrentUser->LoadByGecos($Gecos); unless ($CurrentUser->Id) { @@ -159,10 +139,8 @@ sub GetCurrentUser { return($CurrentUser); } -# }}} -# {{{ sub loc =head2 loc @@ -174,12 +152,10 @@ sub loc { die "No current user yet" unless $CurrentUser ||= RT::CurrentUser->new; return $CurrentUser->loc(@_); } -# }}} } -# {{{ sub GetMessageContent =head2 GetMessageContent @@ -206,9 +182,9 @@ sub GetMessageContent { #Load the sourcefile, if it's been handed to us if ($source) { - open (SOURCE, "<$source"); - @lines = (); - close (SOURCE); + open( SOURCE, '<', $source ) or die $!; + @lines = () or die $!; + close (SOURCE) or die $!; } elsif ($args{'Content'}) { @lines = split('\n',$args{'Content'}); @@ -220,36 +196,34 @@ sub GetMessageContent { for (@lines) { print $fh $_; } - close ($fh); + close ($fh) or die $!; #Edit the file if we need to if ($edit) { unless ($ENV{'EDITOR'}) { - $RT::Logger->crit('No $EDITOR variable defined'. "\n"); + $RT::Logger->crit('No $EDITOR variable defined'); return undef; } system ($ENV{'EDITOR'}, $filename); } - open (READ, "<$filename"); + open( READ, '<', $filename ) or die $!; my @newlines = (); - close (READ); + close (READ) or die $!; unlink ($filename) unless (debug()); return(\@newlines); } -# }}} -# {{{ sub debug sub debug { my $val = shift; my ($debug); if ($val) { - $RT::Logger->debug($val."\n"); + $RT::Logger->debug($val); if ($debug) { print STDERR "$val\n"; } @@ -259,12 +233,21 @@ sub debug { } } -# }}} - +sub ShowHelp { + my $self = shift; + my %args = @_; + require Pod::Usage; + Pod::Usage::pod2usage( + -message => $args{'Message'}, + -exitval => $args{'ExitValue'} || 0, + -verbose => 99, + -sections => $args{'Sections'} || ($args{'ExitValue'} + ? 'NAME|USAGE' + : 'NAME|USAGE|OPTIONS|DESCRIPTION' + ), + ); +} -eval "require RT::Interface::CLI_Vendor"; -die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/CLI_Vendor.pm}); -eval "require RT::Interface::CLI_Local"; -die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/CLI_Local.pm}); +RT::Base->_ImportOverlays(); 1;