$re = '/desc\s*"(((?!").)*)((?!\n).)*\n{1}task\s*:(((?!\n).)*)do(((?!\nend).)*)\nend/s';
$str = 'import \'cloud2/cloud2.rb\'
desc "transfer db from current location to local and new dev"
task :fulldbtransfer => [
:dbdown, :dbup,
:dbup_live,]
$comps_db = [\'prube_yalecomps\']
$tnew_dbs = [ \'prube_yaletnew_drama_prod\',
\'prube_yaletnew_summer_cabaret_prod\',
\'prube_yaletnew_cabaret_prod\',
\'prube_yaletnew_music_prod\',
\'prube_yaletnew_rep_prod\']
$new_tnew_dbs = [ \'prube_yaletnew_drama\',
\'prube_yaletnew_summer_cabaret\',
\'prube_yaletnew_cabaret\',
\'prube_yaletnew_music\',
\'prube_yaletnew_rep\']
all_erube_dbs = $comps_db + $tnew_dbs
desc "Transfer Database, complete with tunnel setup and teardown"
task :dbdown do
all_erube_dbs.each do |database_name|
cloud2_mysqldump do tunnel_host \'cumulus-www-master-pub.rs.lynch2.com\'
tunnel_user \'www\' db_host \'cumulus-db-master.rs.lynch2.com\' skip_secure_auth true
db_user \'mysql\'
db_pass \'mysql\'
db_name " file_prefix \'SOURCE_\'
ignored_tables [\'cache\',\'hits\',\'debug\',\'sessionvars\',\'sessions\']
end
end
end
task :dbsandr do
dbname = "prube_yalecomps"
bucket_prefix = "comps"
cloud2_sed do
source_file "db-tools/SOURCE_mysqldump_ dest_file "db-tools/CLOUD2_
find_str [ ]
replace_str [ ] end
dbname = "prube_yaletnew_drama_prod"
bucket_prefix = "drame"
cloud2_sed do
source_file "db-tools/SOURCE_mysqldump_ dest_file "db-tools/CLOUD2_
find_str [
\'prube_yaletnew_drama_prod\', ]
replace_str [
"prube_yaletnew_drama", ] end
dbname = "prube_yaletnew_summer_cabaret_prod"
bucket_prefix = "summer-cabaret"
cloud2_sed do
source_file "db-tools/SOURCE_mysqldump_ dest_file "db-tools/CLOUD2_
find_str [
\'prube_yaletnew_summer_cabaret_prod\', ]
replace_str [
\'prube_yaletnew_summer_cabaret\', ] end
dbname = "prube_yaletnew_cabaret_prod"
bucket_prefix = "cabaret"
cloud2_sed do
source_file "db-tools/SOURCE_mysqldump_ dest_file "db-tools/CLOUD2_
find_str [
\'prube_yaletnew_cabaret_prod\', ]
replace_str [
\'prube_yaletnew_cabaret\', ] end
dbname = "prube_yaletnew_music_prod"
bucket_prefix = "music"
cloud2_sed do
source_file "db-tools/SOURCE_mysqldump_ dest_file "db-tools/CLOUD2_
find_str [
\'prube_yaletnew_music_prod\', ]
replace_str [
\'prube_yaletnew_music\', ] end
dbname = "prube_yaletnew_rep_prod"
bucket_prefix = "rep"
cloud2_sed do
source_file "db-tools/SOURCE_mysqldump_ dest_file "db-tools/CLOUD2_
find_str [
\'prube_yaletnew_rep_prod\', ]
replace_str [
\'prube_yaletnew_rep\', ] end
end
desc "Send Database to tigard-dev-rds"
task :dbup do
upload_dbs "reston-dev-rds.aws.lynch2.com"
end
desc "Send Database to tigard-mail2-rds"
task :dbup_live do
upload_dbs "reston-live-rds.aws.lynch2.com"
end
def upload_dbs (dbhost)
$comps_db.each do |database_name|
cloud2_mysql do db_host dbhost
db_user \'mysql\'
db_pass \'mysql\'
db_name "mysql" sql_files ["CLOUD2_ end
cloud2_mysql do db_host dbhost
db_user \'mysql\'
db_pass \'mysql\'
db_name " sql_files ["erube_upgrade.sql"]
end
end
$new_tnew_dbs.each do |database_name|
cloud2_mysql do db_host dbhost
db_user \'mysql\'
db_pass \'mysql\'
db_name "mysql" sql_files ["CLOUD2_ end
cloud2_mysql do db_host dbhost
db_user \'mysql\'
db_pass \'mysql\'
db_name " sql_files ["tnew_erube_upgrade.sql"]
end
end
end
';
preg_match($re, $str, $matches, PREG_OFFSET_CAPTURE, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php