fix ticketing system error on bootstrap of new install
[freeside.git] / rt / sbin / rt-email-dashboards.in
index aa5ce64..e828002 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -50,23 +50,15 @@ use strict;
 use warnings;
 
 # fix lib paths, some may be relative
 use warnings;
 
 # fix lib paths, some may be relative
-BEGIN {
+BEGIN { # BEGIN RT CMD BOILERPLATE
     require File::Spec;
     require File::Spec;
+    require Cwd;
     my @libs = ("@RT_LIB_PATH@", "@LOCAL_LIB_PATH@");
     my $bin_path;
 
     for my $lib (@libs) {
         unless ( File::Spec->file_name_is_absolute($lib) ) {
     my @libs = ("@RT_LIB_PATH@", "@LOCAL_LIB_PATH@");
     my $bin_path;
 
     for my $lib (@libs) {
         unless ( File::Spec->file_name_is_absolute($lib) ) {
-            unless ($bin_path) {
-                if ( File::Spec->file_name_is_absolute(__FILE__) ) {
-                    $bin_path = ( File::Spec->splitpath(__FILE__) )[1];
-                }
-                else {
-                    require FindBin;
-                    no warnings "once";
-                    $bin_path = $FindBin::Bin;
-                }
-            }
+            $bin_path ||= ( File::Spec->splitpath(Cwd::abs_path(__FILE__)) )[1];
             $lib = File::Spec->catfile( $bin_path, File::Spec->updir, $lib );
         }
         unshift @INC, $lib;
             $lib = File::Spec->catfile( $bin_path, File::Spec->updir, $lib );
         }
         unshift @INC, $lib;
@@ -78,7 +70,7 @@ BEGIN {
 my %opts;
 use Getopt::Long;
 GetOptions( \%opts,
 my %opts;
 use Getopt::Long;
 GetOptions( \%opts,
-    "help|h", "dryrun", "time=i", "epoch=i", "all"
+    "help|h", "dryrun", "time=i", "epoch=i", "all", "log=s"
 );
 
 if ($opts{'help'}) {
 );
 
 if ($opts{'help'}) {
@@ -89,14 +81,14 @@ if ($opts{'help'}) {
 
 require RT;
 require RT::Interface::CLI;
 
 require RT;
 require RT::Interface::CLI;
-RT::Interface::CLI->import(qw{ CleanEnv loc });
-
-# Clean out all the nasties from the environment
-CleanEnv();
+RT::Interface::CLI->import(qw{ loc });
 
 # Load the config file
 RT::LoadConfig();
 
 
 # Load the config file
 RT::LoadConfig();
 
+# adjust logging to the screen according to options
+RT->Config->Set( LogToSTDERR => $opts{log} ) if $opts{log};
+
 # Connect to the database and get RT::SystemUser and RT::Nobody loaded
 RT::Init();
 
 # Connect to the database and get RT::SystemUser and RT::Nobody loaded
 RT::Init();
 
@@ -130,7 +122,7 @@ are taken to be in the user's timezone if available, UTC otherwise.
 You'll need to have cron run this script every hour. Here's an example crontab
 entry to do this.
 
 You'll need to have cron run this script every hour. Here's an example crontab
 entry to do this.
 
-    0 * * * * @PERL@ /opt/rt4/local/sbin/rt-email-dashboards
+    0 * * * * @RT_SBIN_PATH_R@/rt-email-dashboards
 
 This will run the script every hour on the hour. This may need some further
 tweaking to be run as the correct user.
 
 This will run the script every hour on the hour. This may need some further
 tweaking to be run as the correct user.
@@ -167,6 +159,10 @@ Back-compat for --time SECONDS.
 Ignore subscription frequency when considering each dashboard (should only be
 used with --dryrun for testing and debugging)
 
 Ignore subscription frequency when considering each dashboard (should only be
 used with --dryrun for testing and debugging)
 
+=item --log LEVEL
+
+Adjust LogToSTDERR config option
+
 =back
 
 =cut
 =back
 
 =cut