#!/bin/bash

# Script name: catalystinstaller.sh
# Author: Doran L. Barton <fozz@iodynamics.com>
# License: Same as Perl


VERSION=2007040902

echo "Running catalystinstaller.sh for FC6 version $VERSION"
echo "Please send comments to fozz\@iodynamics.com."
echo ""

echo "This utility uses 'sudo' and will prompt for your password for "
echo "sudo authentication. Make sure you are a sudoer before proceeding."
echo -n "Press ENTER to continue..."
read DUMMY

echo "Testing for cpan2rpm installation..."

if rpm -q cpan2rpm 2>1 > /dev/null
then
  echo "cpan2rpm is already installed"
else 
  echo "cpan2rpm is not yet installed."
  echo "Installing cpan2rpm!"
  sudo yum -y install cpan2rpm
fi 

if rpm -q rpm-build 2>1 > /dev/null
then
  echo "rpm-build is already installed"
else 
  echo "rpm-build is not yet installed."
  echo "Installing rpm-build!"
  sudo yum -y install rpm-build
fi 


if [ "$USER" != "root" ]
then
    echo "Creating rpmbuild environment in $HOME/rpm"
    cpan2rpm --mk-rpm-dir "$HOME/rpm"
fi

echo "Installing yum-able packages..."
sudo yum -y install mod_perl perl-Archive-Zip perl-PAR-Dist \
    perl-Module-Signature perl-Class-Accessor perl-Test-Exception \
    perl-Tree-Simple perl-Class-Data-Inheritable \
    perl-Module-Pluggable perl-HTTP-Body perl-CGI-Simple \
    perl-Class-Inspector perl-Template-Toolkit perl-MIME-Types \
    perl-Test-MockObject perl-DBD-SQLite perl-Data-Page perl-Carp-Clan \
    perl-Class-C3 perl-SQL-Abstract-Limit perl-DBD-Pg perl-Class-Trigger \
    perl-DBIx-ContextualFetch perl-Test-Differences perl-Log-Log4perl \
    perl-Class-MakeMethods perl-Parse-RecDescent \
    perl-Spreadsheet-ParseExcel perl-XML-XPath perl-GD \
    graphviz-perl perl-Readonly perl-List-MoreUtils perl-IPC-Run \
    perl-XML-Twig perl-UNIVERSAL-require perl-Devel-StackTrace \
    perl-Test-Deep perl-version perl-Module-Find perl-HTML-Scrubber \
    perl-Email-Valid perl-Test-NoWarnings perl-HTML-Tree  \
    perl-HTML-Template perl-Text-Template perl-Tie-IxHash \
    perl-Test-WWW-Mechanize perl-Module-Build ncftp \
    perl-Lingua-EN-Inflect perl-Lingua-EN-Inflect-Number \
    perl-File-Copy-Recursive

echo "Building and installing non-yum-able packages..."

RPMQ="rpm -q --quiet"
CPAN2RPMI="cpan2rpm -i --no-upgrade-chk  --force"
$RPMQ perl-Tree-Simple-VisitorFactory || $CPAN2RPMI Tree::Simple::VisitorFactory
$RPMQ perl-Data-Dump ||                  $CPAN2RPMI Data::Dump
$RPMQ perl-File-Modified ||              $CPAN2RPMI File::Modified
$RPMQ perl-HTTP-Request-AsCGI ||         $CPAN2RPMI HTTP::Request::AsCGI
$RPMQ perl-Text-SimpleTable ||           $CPAN2RPMI Text::SimpleTable --version=0.03
$RPMQ perl-Path-Class ||                 $CPAN2RPMI Path::Class --version=0.16
$RPMQ perl-Catalyst-Engine-Apache ||     $CPAN2RPMI Catalyst::Engine::Apache --version=1.09 --no-requires='perl(Apache2),perl(Apache::Connection),perl(Apache::Const),perl(Apache::RequestIO),perl(Apache::RequestRec),perl(Apache::RequestUtil),perl(Apache::Response),perl(Apache::URI)'
$RPMQ perl-FCGI ||                       $CPAN2RPMI FCGI --version=0.67
$RPMQ perl-FCGI-ProcManager ||           $CPAN2RPMI FCGI::ProcManager 
# 20070224 - Hard coded PAR to v0.971 because newer versions require 
# a newer version of AutoLoader.pm - which is bundled in the 'perl' RPM
$RPMQ perl-PAR ||                        $CPAN2RPMI PAR-0.971 
$RPMQ perl-Catalyst-Runtime ||           $CPAN2RPMI Catalyst::Runtime --no-requires='perl(Catalyst::Helper)'
# 20070224 - Removed File::Copy::Recursive - Found it in extras now
# $RPMQ perl-File-Copy-Recursive ||        $CPAN2RPMI File::Copy::Recursive
$RPMQ perl-Catalyst-Action-RenderView || $CPAN2RPMI Catalyst::Action::RenderView --version=0.04
$RPMQ perl-Catalyst-Plugin-Static-Simple || $CPAN2RPMI Catalyst::Plugin::Static::Simple --version=0.15
$RPMQ perl-Config-Any || $CPAN2RPMI Config::Any --version=0.07
$RPMQ perl-Test-use-ok || $CPAN2RPMI Test::use::ok
$RPMQ perl-Data-Visitor  || $CPAN2RPMI Data::Visitor --version=0.05
$RPMQ perl-Catalyst-Plugin-ConfigLoader || $CPAN2RPMI Catalyst::Plugin::ConfigLoader --version=0.13
# 
# Need to comment out the Catalyst::Manual build requiement in the
# Catalyst::Devel Makefile.PL
$RPMQ perl-Catalyst-Devel || $CPAN2RPMI Catalyst::Devel --no-requires='perl(Catalyst::Manual)'
# PathTools has to be forced because it replaces stuff in the 'perl' RPM
$RPMQ perl-PathTools || (cpan2rpm PathTools --version=3.24 && sudo rpm -Uvh --force $HOME/rpm/RPMS/*/perl-PathTools-3.24*rpm)
$RPMQ perl-Class-Data-Accessor || $CPAN2RPMI Class::Data::Accessor --version=0.03
$RPMQ perl-JSON || $CPAN2RPMI JSON
$RPMQ perl-Class-Base || $CPAN2RPMI Class::Base
$RPMQ perl-XML-Writer || $CPAN2RPMI XML::Writer
$RPMQ perl-Text-TabularDisplay || $CPAN2RPMI Text::TabularDisplay
$RPMQ perl-Text-RecordParser || $CPAN2RPMI Text::RecordParser --version=1.2.1 --name="Text-RecordParser"
$RPMQ perl-GraphViz || $CPAN2RPMI GraphViz 
$RPMQ perl-SQL-Translator || $CPAN2RPMI SQL::Translator --version=0.08 --no-requires='perl(:)'
$RPMQ perl-Data-UUID || $CPAN2RPMI Data::UUID
$RPMQ perl-Class-Accessor-Grouped || $CPAN2RPMI Class::Accessor::Grouped --version=0.03
$RPMQ perl-DBIx-Class || $CPAN2RPMI DBIx::Class --version=0.07999_02   --no-requires='perl(DBIx::Class::ClassResolver::PassThrough)' --name='DBIx-Class'
$RPMQ perl-DBIx-Class-Schema-Loader || $CPAN2RPMI DBIx::Class::Schema::Loader --version=0.03010
$RPMQ perl-Catalyst-Model-DBIC-Schema || $CPAN2RPMI Catalyst::Model::DBIC::Schema --version=0.18
$RPMQ perl-Template-Timer || $CPAN2RPMI Template::Timer
$RPMQ perl-Catalyst-View-TT || $CPAN2RPMI Catalyst::View::TT 
$RPMQ perl-Catalyst-Plugin-StackTrace || $CPAN2RPMI Catalyst::Plugin::StackTrace --version=0.06 
$RPMQ perl-Object-Signature || $CPAN2RPMI Object::Signature
$RPMQ perl-Catalyst-Plugin-Session || $CPAN2RPMI Catalyst::Plugin::Session 
$RPMQ perl-Catalyst-Plugin-Session-State-Cookie || $CPAN2RPMI Catalyst::Plugin::Session::State::Cookie
$RPMQ perl-Catalyst-Plugin-Authentication || $CPAN2RPMI Catalyst::Plugin::Authentication  --no-requires='perl(Catalyst::Plugin::Authentication::Store::Minimal::Backend)'

$RPMQ perl-Set-Object || $CPAN2RPMI Set::Object 
$RPMQ perl-Catalyst-Plugin-Authentication-Store-DBIC || $CPAN2RPMI Catalyst::Plugin::Authentication::Store::DBIC  --version=0.07
$RPMQ perl-Set-Object || $CPAN2RPMI Set::Object
$RPMQ perl-Catalyst-Plugin-Authorization-Roles || $CPAN2RPMI Catalyst::Plugin::Authorization::Roles 
$RPMQ perl-Cache-FastMmap || $CPAN2RPMI Cache::FastMmap
$RPMQ perl-Catalyst-Plugin-Session-Store-FastMmap || $CPAN2RPMI Catalyst::Plugin::Session::Store::FastMmap  --version=0.02
$RPMQ perl-Module-Pluggable-Fast || $CPAN2RPMI Module::Pluggable::Fast
$RPMQ perl-HTML-Widget || $CPAN2RPMI HTML::Widget
$RPMQ perl-Catalyst-Plugin-HTML-Widget || $CPAN2RPMI Catalyst::Plugin::HTML::Widget
$RPMQ perl-DBIx-Class-HTMLWidget || $CPAN2RPMI DBIx::Class::HTMLWidget
$RPMQ perl-CGI-FastTemplate || $CPAN2RPMI CGI::FastTemplate
$RPMQ perl-CGI-FormBuilder || $CPAN2RPMI CGI::FormBuilder
$RPMQ perl-Test-WWW-Mechanize-Catalyst || $CPAN2RPMI Test::WWW::Mechanize::Catalyst --version=0.37
$RPMQ perl-Catalyst-Controller-FormBuilder || $CPAN2RPMI Catalyst::Controller::FormBuilder --version=0.03

