#!/bin/bash
# code-analysis.sh (A Tiny script to generate code analysis using Spike PHP Security Audit Tool
# This script uses Spike PHP Security Audit Tool to audit the php source code located in directory[x]
# Please configure the directory array below, you might desire to intruduce new arrays pointint
# to more source code directories.
# The script generates the spike php code analysis in the directory as specified in the www_dir variable
#
# To generate daily code analysis results you might consider creating a crontab record like:
# # code analysis results
# 05 3 * * * /usr/local/bin/code-analysis.sh >/dev/null 2>&1
# This script is licensed under GPL 2
# http://www.gnu.org/licenses/gpl-2.0.txt
# Written by hip0 (Thu Apr 22 10:43:10 CST 2010)

### Configure here
domain_name='yourdomainname.com';
spike_phpsec=/usr/local/spike_phpSecAudit_0.27/run.php;
log_dir=/root/code-analysis/;
php_bin=/usr/bin/php;
directory[1]='/home/source-code1/';
directory[2]='/home/source-code2/';
directory[3]='/home/source-code3/';
#directory[4]='';
www_dir=/var/www/code-analysis;
###

if [ ! -d $www_dir ]; then
mkdir $www_dir;
fi

cat /dev/null > $www_dir/index.html;
echo "<html><head><title> PHP Source Code Analysis Results </title></head><body>" >> $www_dir/index.html;
echo "<h2><center> PHP Source Code Analysis Results </center></h2><br /><br />" >> $www_dir/index.html;
echo "<h3><center> Code Analysis generated on $(date) </center></h3><br />" >> $www_dir/index.html;

if [ ! -d $log_dir ]; then
mkdir $log_dir
fi


for i in `seq 1 ${#directory[@]}`; do
log_dir[$i]=$(echo ${directory[$i]} | sed -e "s#/home/#$log_dir#g");
www_dir[$i]=$(echo ${directory[$i]} |sed -e "s#/home/##g");
#echo ${log_dir[$i]};
#cd ${directory[$i]};
/usr/bin/nice -n 10 php $spike_phpsec --src ${directory[$i]}www/ --outdir ${log_dir[$i]};
echo "<center><a href="http://$domain_name/code-analysis/${www_dir[$i]}"> Code Analysis of ${www_dir[$i]} </a></center><br />" >> $www_dir/index.html;
/bin/cp -rpf ${log_dir[$i]} $www_dir/;
done

echo "</body></html>" >> $www_dir/index.html;
