package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?s)desc\s*"(((?!").)*)((?!\n).)*\n{1}task\s*:(((?!\n).)*)do(((?!\nend).)*)\nend`)
var 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
`
if len(re.FindStringIndex(str)) > 0 {
fmt.Println(re.FindString(str),"found at index",re.FindStringIndex(str)[0])
}
}
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 Golang, please visit: https://golang.org/pkg/regexp/