Training, Open Source computer languages
PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 
Search for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
 
This week, we're updating our course layouts and descriptions. Presentation and materials always gently change over time, but just occasionally there's a need to make a step change to clear out some of the old and roll in the new. That's now happening - but over a long and complex site it's not instant and you'll see sections of the site changing up to and including 19th September.

See also [here] for status update
 
Please Help on Perl Scripting.

Posted by Laarni (Laarni), 10 January 2008
Hi,

Im going to convert a big cshell script to Perl. Haven't done any perl script before anyone can please help me on this?

Thanks in advance.


if ( !(-f PROMOTE_CFG.`hostname`.fil) || !(-f PROMOTE.cfg) ) then
       echo ""
       echo "Please run this script in the same directory as this script in this server [`hostname`]"
       echo ""
       exit 1
endif

source PROMOTE.cfg

set startime = `date`

echo $0
echo ""
echo "------------------------------------------"
echo ""
echo "Creating log directory..."$log
if !(-d $conv) mkdir $conv
if !(-d $log) mkdir $log

if (-f PROMOTE_CFG.`hostname`.fil) then
       set dbfilelist = "PROMOTE_CFG.`hostname`.fil"
       set dblist = `cat $dbfilelist`
else
       echo ""
       echo "Please list the databases to be converted in PROMOTE_CFG.`hostname`.fil"
       echo ""
       exit 1
endif

# Perform the Database promotion only once

if ((`ls PROMOTE_CFG.*pap.fil | wc -l` > 1) && ($HOST2CHK4DBPROMOTE != `hostname`)) then
       echo ""
       echo "Database promotion will not be executed at this server [`hostname`]"
       echo ""
       exit 1
endif

# Begin converting the Database
foreach line ($dblist)

set site = `echo $line | cut -f1 -d:`
set db = `echo $line | cut -f2 -d:`

#check site config file
if !( -f cfg/$site.`hostname`.cfg ) then
       echo ""
       echo "Please check configuration for site cfg/$site.`hostname`.cfg exists"
       echo ""
       source PROMOTE.uncfg
       exit 1
endif

echo ""
echo "$db ($site) database conversion..."

# Set the DB, UID, PSW and SVR based on site
sed -e s/db_name/$db/g cfg/$site.`hostname`.cfg >! $cfg/$db.cfg

if !(-f $cfg/$db.cfg) then
       echo ""
       echo "Please check if the configuration file for database $cfg.$db.cfg exists"
       echo ""
       source PROMOTE.uncfg
       exit 0
endif

source $cfg/$db.cfg

if !(-d $backup_dat/$db) then
       echo ""
       echo "Create backup directory [$backup_dat/$db] for database..."$db
       mkdir $backup_dat/$db
endif

if (-f new_table_list.fil) then
       echo ""
       echo "Creating new tables..."
       set newtablist = `cat new_table_list.fil`
       set table_no = 0
       echo "New table creation log:" >! $log/newtable_$db.log
       foreach table ($newtablist)
               set table_no = `expr $table_no + 1`
               echo $table_no") "$table
               echo $table_no") "$table >> $log/newtable_$db.log
               if (-f $newtabdir/$table) then
                       runsql < $newtabdir/$table >> $log/newtable_$db.log
               else
                       if (-f $alt1tabdir/$table) then
                               runsql < $alt1tabdir/$table >> $log/newtable_$db.log
                       else
                               if (-f $alt2tabdir/$table) then
                                       runsql < $alt2tabdir/$table >> $log/newtable_$db.log
                               else
                                       if (-f $alt3tabdir/$table) then
                                               runsql < $alt3tabdir/$table >> $log/newtable_$db.log
                                       else
                                               if (-f $alt4tabdir/$table) then
                                                       runsql < $alt4tabdir/$table >> $log/newtable_$db.log
                                               else
                                                       if (-f $alt5tabdir/$table) then
                                                               runsql < $alt5tabdir/$table >> $log/newtable_$db.log
                                                       else
                                                               runsql < $alt6tabdir/$table >> $log/newtable_$db.log
                                                       endif
                                               endif
                                       endif
                               endif
        endif
               endif
               echo "" >> $log/newtable_$db.log
       end
endif
if (-f stored_proc_list.fil) then
       echo ""
       echo "Submitting stored procedures..."
       set storedproclist = `cat stored_proc_list.fil`
       set script_no = 0
       echo "Stored Procedure creation log:" >! $log/storedproc_$db.log
       foreach script ($storedproclist)
               set script_no = `expr $script_no + 1`
               echo $script_no") "$script
               echo $script_no") "$script >> $log/storedproc_$db.log
               if (-f $sqlprocdir/$script) then
                       runsql < $sqlprocdir/$script >> $log/storedproc_$db.log
               else
                       if (-f $alt1sqlprocdir/$script) then
                               runsql < $alt1sqlprocdir/$script >> $log/storedproc_$db.log
                       else
                               if (-f $alt2sqlprocdir/$script) then
                                       runsql < $alt2sqlprocdir/$script >> $log/storedproc_$db.log
                               else
                                       runsql < $alt3sqlprocdir/$script >> $log/storedproc_$db.log
                               endif
                       endif
               endif
               echo "" >> $log/storedproc_$db.log
       end
endif

# move to the bottom
if (-f trigger_list.fil) then
       echo ""
       echo "Submitting trigger..."
       set triggerlist = `cat trigger_list.fil`
       set table_no = 0
       echo "Trigger creation log:" >! $log/trigger_$db.log
       foreach table ($triggerlist)
               set table_no = `expr $table_no + 1`
               echo $table_no") "$table
               echo $table_no") "$table >> $log/trigger_$db.log
               if (-f $newtabdir/$table) then
                       runsql < $newtabdir/$table >> $log/trigger_$db.log
               else
                       if (-f $alt1tabdir/$table) then
         runsql < $alt1tabdir/$table >> $log/trigger_$db.log
                       else
                               runsql < $alt2tabdir/$table >> $log/trigger_$db.log
                       endif
               endif
               echo "" >> $log/trigger_$db.log
       end
endif


# grant privilege
echo ""
echo "grant privilege"
cat update/gen_grant.sql | runsql | egrep '^ grant|^ go' | cut -c2- | runsql >>! $log/onetime_grant_$db.log

echo ""
echo "Completed $db database conversion..."

end
#end of the main for loop

#############################
if (-f jil.fil) then

       # set environment for autosys
       source $autosysdir

       echo ""
       echo "Submitting Autosys jobs ..."
       set joblists = `cat jil.fil`
       set job_no=0
       echo "Autosys jobs log:" >! $log/jobs.log
       foreach joblist ($joblists)
               set job_no = `expr $job_no + 1`
               echo $job_no") "$joblist
               echo $job_no") "$joblist >> $log/jobs.log
               #backup
               set job=`echo $joblist | cut -f1 -d'.'`
               autorep -q -J $job -L0 >! $backup_jil/$job.bak
                               #punch in job
               jil < misc/jil/$joblist >>! $log/jobs.log
       end
endif


source PROMOTE.uncfg

echo ""
echo "------------------------------------------"
echo ""
echo Start time = $startime
echo Stop time  = `date`
echo ""

if (-f readme.txt) cat readme.txt


Posted by admin (Graham Ellis), 10 January 2008
on 01/10/08 at 08:54:11, Laarni wrote:
Hi,

Im going to convert a big cshell script to Perl. Haven't done any perl script before anyone can please help me on this?



Sure, be delighted to ... but it's a bit more of a project than the sort of thing that can be done as an answer on a forum.  Follow the link to:

http://www.wellho.net/course/ppfull.html

I'm running this next week; book, come along, bring your shell script and you'll be well on the way by Friday!

-- Graham



This page is a thread posted to the opentalk forum at www.opentalk.org.uk and archived here for reference. To jump to the archive index please follow this link.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2014: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho