Class: WPMake::Bootstrap
Constant Summary
Constants included
from TextHelpers
TextHelpers::MYSQL_INSTALL_MSG, TextHelpers::MYSQL_UPGRADE_MSG, TextHelpers::PAGODA_INSTALL_MSG, TextHelpers::PHP_INSTALL_MSG, TextHelpers::PHP_UPGRADE_MSG, TextHelpers::RUBY_INSTALL_MSG, TextHelpers::WGET_INSTALL_MSG
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of Bootstrap.
13
14
15
16
17
|
# File 'lib/wpmake/bootstrap.rb', line 13
def initialize
@site_title = ARGV[0]
@banner = "Usage: wpmake [site name]"
@remote_provider ||= "pagoda"
end
|
Instance Attribute Details
#banner ⇒ Object
Returns the value of attribute banner.
10
11
12
|
# File 'lib/wpmake/bootstrap.rb', line 10
def banner
@banner
end
|
#remote_provider ⇒ Object
Returns the value of attribute remote_provider.
11
12
13
|
# File 'lib/wpmake/bootstrap.rb', line 11
def remote_provider
@remote_provider
end
|
#site_title ⇒ Object
Returns the value of attribute site_title.
9
10
11
|
# File 'lib/wpmake/bootstrap.rb', line 9
def site_title
@site_title
end
|
Instance Method Details
#check_dependency_presence ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/wpmake/bootstrap.rb', line 34
def check_dependency_presence
begin
check_ruby = `ruby -v`
check_mysql = `mysql -V`
check_php = `php -v`
check_wget = `wget -V`
check_pagoda = `pagoda --version`
rescue Errno::ENOENT
missing_dependency = "#{$!}".split(/-/)[1]
exit_msg = "#{missing_dependency} not installed!"
if missing_dependency.match(/ruby/)
exit_msg = exit_msg + WPMake::TextHelpers::RUBY_INSTALL_MSG
elsif missing_dependency.match(/mysql/)
exit_msg = exit_msg + WPMake::TextHelpers::MYSQL_INSTALL_MSG
elsif missing_dependency.match(/php/)
exit_msg = exit_msg + WPMake::TextHelpers::PHP_INSTALL_MSG
elsif missing_dependency.match(/wget/)
exit_msg = exit_msg + WPMake::TextHelpers::WGET_INSTALL_MSG
elsif missing_dependency.match(/pagoda/)
exit_msg = exit_msg + WPMake::TextHelpers::PAGODA_INSTALL_MSG
end
abort(exit_msg)
end
end
|
#check_dependency_versions ⇒ Object
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
# File 'lib/wpmake/bootstrap.rb', line 61
def check_dependency_versions
puts "Checking dependency versions..."
ruby_version = `ruby -v`.split(/ /)[1]
mysql_version = `mysql -V`.split(/ /)[5].gsub(/,/, "")
php_version = `php -v`.split(/ /)[1]
php_major_version = php_version.split(/\./)[0..1].join("").to_i
mysql_major_version = mysql_version.split(/\./)[0].to_i
puts "Ruby version: #{ruby_version}... ok!"
if mysql_major_version >= 5
puts "Mysql version: #{mysql_version}... ok!"
else
abort(WPMake::TextHelpers::MYSQL_UPGRADE_MSG)
end
if php_major_version > 43
puts "PHP version: #{php_version}... ok!"
else
abort(WPMake::TextHelpers::PHP_UPGRADE_MSG)
end
end
|
#directory_setup ⇒ Object
82
83
84
85
86
87
88
89
90
91
|
# File 'lib/wpmake/bootstrap.rb', line 82
def directory_setup
pwd = `pwd`.strip + "/" + @site_title
wp_latest_url = "http://wordpress.org/latest.zip"
FileUtils.mkdir(pwd)
`wget -P #{@site_title} #{wp_latest_url}`
`unzip #{@site_title}/latest.zip -d #{@site_title}`
FileUtils.mv(Dir.glob("#{@site_title}/wordpress/*"), "#{@site_title}")
FileUtils.rm_rf("#{@site_title}/wordpress")
end
|
#provider_setup ⇒ Object
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
# File 'lib/wpmake/bootstrap.rb', line 93
def provider_setup
if @remote_provider == "pagoda"
working_dir = `pwd`.strip + "/#{@site_title}"
pagoda_dir = "#{working_dir}/pagoda"
puts "Copying config files..."
`cp #{File.expand_path("../../../pagodafiles/Boxfile", __FILE__)} #{@site_title}`
FileUtils.mkdir(pagoda_dir)
`cp #{File.expand_path("../../../pagodafiles/wp-config.php", __FILE__)} #{@site_title}/pagoda`
puts "Initializing git repo..."
Dir.chdir(working_dir)
`git init`
`git add .`
`git commit -am "Initial commit"`
puts "Creating empty repository at pagoda box..."
`pagoda create dba-#{@site_title}`
puts "Pushing to pagoda box..."
`git push pagoda master`
else
end
end
|
#require_site_name ⇒ Object
28
29
30
31
32
|
# File 'lib/wpmake/bootstrap.rb', line 28
def require_site_name
if @site_title.nil?
abort(@banner)
end
end
|
#routine ⇒ Object
19
20
21
22
23
24
25
26
|
# File 'lib/wpmake/bootstrap.rb', line 19
def routine
require_site_name
check_dependency_presence
check_dependency_versions
directory_setup
provider_setup
end
|