Files
DSpace/dspace/bin/stat-report-initial
Richard Jones c3ad17909e report date building bug fixes
git-svn-id: http://scm.dspace.org/svn/repo/trunk@1190 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2005-04-21 08:14:16 +00:00

137 lines
4.9 KiB
Perl

#!/usr/bin/env perl
###########################################################################
#
# stat-report-initial
#
# Author: Richard Jones
# Created On: 28/02/2005
#
# Copyright (c) 2002, Hewlett-Packard Company and Massachusetts
# Institute of Technology. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# - Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# - Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# - Neither the name of the Hewlett-Packard Company nor the name of the
# Massachusetts Institute of Technology nor the names of their
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
# DAMAGE.
###########################################################################
###########################################################################
# This script starts from the year and month specified below and works
# forward until the end of the current month, generating monthly reports
# from the dstat aggregation files.
#
# To customise for your own use change the $in_prefix, $in_suffix, $out_prefix,
# $out_suffix, $start_year, $start_month, $dsrun and $out_directory variables
# below.
#
# If you wish to futher configure this script, you will need to edit the
# command being executed, which appears near the bottom of the page, and is
# commented with "# The command to generate the report"
#
# For more information on using the ReportGenerator, use:
#
# [dspace]/bin/dsrun org.dspace.app.statistics.ReportGenerator -help
###########################################################################
use POSIX qw(floor);
my $start;
my $end;
my $out;
my $i;
my $no_months;
my $second;
my $minute;
my $hour;
my $day;
my $month;
my $year;
my $week_day;
my $day_of_year;
my $is_dst;
my $out_prefix;
my $out_suffix;
# Details used
################################################
$in_prefix = "dspace-log-monthly-";
$in_suffix = ".dat";
$out_prefix = "report-";
$out_suffix = ".html";
$start_year = "2004";
$start_month = "5";
$dsrun = "/dspace/bin/dsrun";
$in_directory = "/dspace/log/";
$out_directory = "/dspace/reports/";
################################################
# Get the all the values for current time
($second, $minute, $hour, $day, $month, $year, $week_day, $day_of_year, $is_dst) = localtime(time);
# set up the variables to use in the loop
# number of years after the current year (will mostly be negative)
# <current year> = (<perl year> + 1900)
# <start year offset> = <start year> - <current year>
$year_offset = $start_year - ($year + 1900);
# total number of months between now and the start date (negated to be positive in general)
# <months in year offset> = |<start year offset>| * 12
# <difference in current year months> = (<current perl month> + 1) - <start month>
# <total number of months> = <months in year offset> + <difference in current year months>
# we use -1 to make <start year offset> positive since it should always be negative
$no_months = (-1 * ($year_offset * 12)) + (($month + 1) - $start_month);
# start day of every month
$start_day = "01";
# for every month ...
for ($i = 0; $i < $no_months; $i++)
{
# the month of the year (horrid modular maths)
$this_month = (($start_month + $i - 1) % 12) + 1;
# number of years gone through since we started the loop
$year_count = floor(($i + $start_month - 1) / 12);
# the year of the current analysis period
$this_year = $year + $year_offset + $year_count + 1900;
# input and output file paths
$in = $in_directory . $in_prefix . $this_year . "-" . $this_month . $in_suffix;
$out = $out_directory . $out_prefix . $this_year . "-" . $this_month . $out_suffix;
# The command to generate the report
$execute = "$dsrun org.dspace.app.statistics.ReportGenerator -format html -in $in -out $out";
system($execute);
}
exit(1);