#
# COPYRIGHT:
#
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
# <sales@bestpractical.com>
#
# (Except where explicitly superseded by other copyright notices)
use warnings;
# fix lib paths, some may be relative
-BEGIN {
+BEGIN { # BEGIN RT CMD BOILERPLATE
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) ) {
- 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;
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'}) {
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();
+# 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();
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.
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