#!/usr/bin/perl # # Software Index, Copyright 2010, Software Index Project Team # Link: http://swi.sourceforge.net # # This file is part of Software Index Tool. # # Software Index is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, version 3 of the License. # # Software Index 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 Software Index. If not, see . # =head1 OVERVIEW Software Index measures, reports and validates software statistic, searches for duplications, scans for errors, 'coding style' violations and occasions of broken design patterns which are defined by your design team. More information available at 'http://swi.sourceforge.net'. =head1 SYNOPSIS In order to get the context help (this text): perl swi_main.pl -h perl swi_main.pl -help perl swi_main.pl --help In order to get the sample configuration file and it's description: perl swi_main.pl -s perl swi_main.pl -sample perl swi_main.pl --sample In order to launch the tool with the prepared configuration file: perl swi_main.pl =head1 OPTIONS =over 4 =item -h, -help, --help Prints this help page. =item -s, -sample, --sample Prints the example of configuration file and it's description. The sample explains every section in details and gives several usage examples. Use this as a start up framework for your initial configs. For example: > perl swi_main.pl -sample > my_config.xml =item Full or relative path to the configuration file for the tool. =back =head1 ENVIRONMENT The tool requires Perl Runtime Environment. Required Perl version is 5.6.x or later. =head1 COPYRIGHT Software Index, Copyright 2009, 2010, Software Index Project Team, Link: http://swi.sourceforge.net =head1 LICENSE Software Index is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License. Software Index 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 Software Index. If not, see . =cut use strict; use Cwd qw(abs_path); use Pod::Usage; $0 =~ m/(.*)swi_main.pl$/; my $globalRootDirectory = abs_path($1); push( @INC, "$globalRootDirectory/lib" ); require SWI::Launcher; if ( !defined( $ARGV[0] ) || $ARGV[0] eq "-help" || $ARGV[0] eq "--help" || $ARGV[0] eq "-h" ) { pod2usage( -exitstatus => 0, -verbose => 2 ); exit 0; } if ( $ARGV[0] eq "-sample" || $ARGV[0] eq "--sample" || $ARGV[0] eq "-s" ) { my $fh = new FileHandle( "$globalRootDirectory/swi_config_sample.xml", "r" ) or die( "Can not open input file '$globalRootDirectory/swi_config_sample.xml'!" ); while (<$fh>) { print $_; } exit 0; } exit swiLaunch( $globalRootDirectory, @ARGV );