danarchy_deploy 0.1.2 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/Gemfile.lock +9 -20
- data/README.md +10 -9
- data/Rakefile +0 -4
- data/bin/danarchy_deploy +24 -10
- data/danarchy_deploy.gemspec +4 -3
- data/lib/danarchy_deploy.rb +186 -55
- data/lib/danarchy_deploy/applicator.rb +39 -0
- data/lib/danarchy_deploy/applicator/nginx.rb +86 -0
- data/lib/danarchy_deploy/applicator/phpfpm.rb +84 -0
- data/lib/danarchy_deploy/applicator/redmine.rb +40 -0
- data/lib/danarchy_deploy/applicator/ssl.rb +14 -0
- data/lib/danarchy_deploy/applicator/wordpress.rb +146 -0
- data/lib/danarchy_deploy/applicator/wordpress/wpcli.rb +67 -0
- data/lib/danarchy_deploy/applicator/wordpress/wpcli_install.sh +36 -0
- data/lib/danarchy_deploy/applicator/wordpress/wpconfig.rb +49 -0
- data/lib/danarchy_deploy/archiver.rb +9 -7
- data/lib/danarchy_deploy/archiver/svn.rb +17 -0
- data/lib/danarchy_deploy/hash_deep_merge.rb +9 -0
- data/lib/danarchy_deploy/helpers.rb +42 -10
- data/lib/danarchy_deploy/installer.rb +2 -2
- data/lib/danarchy_deploy/services.rb +12 -25
- data/lib/danarchy_deploy/services/init.rb +52 -0
- data/lib/danarchy_deploy/services/init/openrc.rb +72 -0
- data/lib/danarchy_deploy/services/init/systemd.rb +69 -0
- data/lib/danarchy_deploy/services/mongodb.rb +162 -0
- data/lib/danarchy_deploy/services/mysql.rb +58 -0
- data/lib/danarchy_deploy/services/mysql/new_server.rb +72 -0
- data/lib/danarchy_deploy/services/mysql/privileges.rb +35 -0
- data/lib/danarchy_deploy/system.rb +86 -0
- data/lib/danarchy_deploy/system/centos.rb +17 -0
- data/lib/danarchy_deploy/system/debian.rb +61 -0
- data/lib/danarchy_deploy/system/gentoo.rb +66 -0
- data/lib/danarchy_deploy/system/opensuse.rb +22 -0
- data/lib/danarchy_deploy/templater.rb +53 -13
- data/lib/danarchy_deploy/users.rb +29 -19
- data/lib/danarchy_deploy/version.rb +1 -1
- metadata +34 -12
@@ -0,0 +1,39 @@
|
|
1
|
+
require_relative 'applicator/wordpress'
|
2
|
+
require_relative 'applicator/nginx'
|
3
|
+
require_relative 'applicator/phpfpm'
|
4
|
+
require_relative 'applicator/ssl'
|
5
|
+
|
6
|
+
module DanarchyDeploy
|
7
|
+
module Applicator
|
8
|
+
def self.new(os, user, options)
|
9
|
+
puts "\n" + self.name
|
10
|
+
|
11
|
+
user[:applications].each do |domain, app|
|
12
|
+
app[:domain] = domain.to_s
|
13
|
+
app[:username] = user[:username]
|
14
|
+
app[:path] = app[:path] ? app[:path] : user[:home] + '/' + app[:domain]
|
15
|
+
|
16
|
+
Dir.exist?(app[:path]) || FileUtils.mkdir_p(app[:path], mode: 0755)
|
17
|
+
FileUtils.chown_R(user[:username], user[:username], app[:path])
|
18
|
+
|
19
|
+
if app[:archives] && options[:first_run]
|
20
|
+
puts "\n > Deploying archives for #{domain}"
|
21
|
+
perms = { uid: user[:uid], gid: user[:gid] }
|
22
|
+
app[:archives].map{|a| a[:perms] = perms }
|
23
|
+
puts "\n |> Applying user's ownership to archives: #{perms}"
|
24
|
+
DanarchyDeploy::Archiver.new(app[:archives], options)
|
25
|
+
end
|
26
|
+
|
27
|
+
app = DanarchyDeploy::Applicator::PHPFPM.new(app, options) if app[:phpfpm]
|
28
|
+
app = DanarchyDeploy::Applicator::Nginx.new(app, options) if app[:nginx]
|
29
|
+
app = DanarchyDeploy::Applicator::WordPress.new(app, options) if app[:app] == 'wordpress'
|
30
|
+
app = DanarchyDeploy::Applicator::Redmine.new(app, options) if app[:app] == 'redmine'
|
31
|
+
|
32
|
+
app.delete_if { |k, v| [:username, :domain].include? k }
|
33
|
+
user[:applications][domain] = app
|
34
|
+
end
|
35
|
+
|
36
|
+
user
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
|
2
|
+
module DanarchyDeploy
|
3
|
+
module Applicator
|
4
|
+
class Nginx
|
5
|
+
def self.new(app, options)
|
6
|
+
puts "\n" + self.name
|
7
|
+
puts "\n > Checking Nginx configuration for #{app[:username]}."
|
8
|
+
|
9
|
+
app = generate_paths(app, options)
|
10
|
+
if app[:nginx] == 'enabled'
|
11
|
+
enable_nginx(app, options)
|
12
|
+
elsif app[:nginx] == 'disabled'
|
13
|
+
disable_nginx(app, options)
|
14
|
+
end
|
15
|
+
|
16
|
+
app
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.generate_paths(app, options)
|
20
|
+
nginx_config = Dir['/etc/nginx/**/nginx.conf'].last
|
21
|
+
sites_enabled = nil
|
22
|
+
|
23
|
+
if nginx_config.nil? && options[:pretend]
|
24
|
+
sites_enabled = '/etc/nginx/sites_enabled/'
|
25
|
+
puts " - Fake run: Testing deployment using #{sites_enabled}"
|
26
|
+
elsif nginx_config.nil? && !options[:pretend]
|
27
|
+
abort("\n ! ERROR: Could not establish nginx.conf location!")
|
28
|
+
else
|
29
|
+
nginx_config = File.readlines(nginx_config)
|
30
|
+
sites_enabled = nginx_config.grep(/include/).last.gsub(/\s+include |\*.conf;/, '').chomp.gsub(/\*;/, '')
|
31
|
+
end
|
32
|
+
|
33
|
+
app[:domaincfg] = app[:domaincfg] ?
|
34
|
+
app[:domaincfg] :
|
35
|
+
"/home/#{app[:username]}/nginx/sites-enabled/#{app[:domain]}.conf"
|
36
|
+
# app[:domaincfg] = "/home/#{app[:username]}/nginx/sites-enabled/#{app[:domain]}.conf" #sites_enabled + "#{app[:domain]}.conf"
|
37
|
+
app[:log_dir] = app[:log_dir] ?
|
38
|
+
app[:log_dir] :
|
39
|
+
"/home/#{app[:username]}/nginx/logs/#{app[:domain]}"
|
40
|
+
app
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.enable_nginx(app, options)
|
44
|
+
if !options[:pretend]
|
45
|
+
puts "\n |+ Enabling Nginx for '#{app[:domain]}'."
|
46
|
+
FileUtils.mkdir_p([File.dirname(app[:domaincfg]), app[:log_dir]])
|
47
|
+
FileUtils.chown_R(app[:username], app[:username], "/home/#{app[:username]}/nginx")
|
48
|
+
DanarchyDeploy::Users.add_to_group({username: 'nginx', groups: [app[:username]]}, options)
|
49
|
+
end
|
50
|
+
|
51
|
+
source = options[:deploy_dir] + '/templates/applications/nginx/domain.conf.erb'
|
52
|
+
template = { target: app[:domaincfg],
|
53
|
+
source: source,
|
54
|
+
variables: { username: app[:username],
|
55
|
+
domain: app[:domain] },
|
56
|
+
dir_perms: { owner: app[:username],
|
57
|
+
group: app[:username],
|
58
|
+
mode: '0755' },
|
59
|
+
file_perms: { owner: app[:username],
|
60
|
+
group: app[:username],
|
61
|
+
mode: '0644' } }
|
62
|
+
|
63
|
+
# if app[:ssl]
|
64
|
+
# if app[:ssl][:type] == 'letsencrypt'
|
65
|
+
# DanarchyDeploy::Applicator::SSL::LetsEncrypt.new(template, options)
|
66
|
+
# end
|
67
|
+
# end
|
68
|
+
|
69
|
+
templates = [template]
|
70
|
+
DanarchyDeploy::Templater.new(templates, options)
|
71
|
+
end
|
72
|
+
|
73
|
+
def self.disable_nginx(app, options)
|
74
|
+
if options[:pretend]
|
75
|
+
puts " - Fake run: Remove #{app[:domaincfg]}"
|
76
|
+
else
|
77
|
+
puts "\n ! Disabling Nginx for '#{app[:domain]}'."
|
78
|
+
if File.exist?(app[:domaincfg])
|
79
|
+
File.delete(app[:domaincfg])
|
80
|
+
puts " |_ Removed: #{app[:domaincfg]}"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
|
2
|
+
module DanarchyDeploy
|
3
|
+
module Applicator
|
4
|
+
class PHPFPM
|
5
|
+
def self.new(app, options)
|
6
|
+
puts "\n" + self.name
|
7
|
+
puts "\n > Checking #{app[:username]}'s PHP-FPM config."
|
8
|
+
|
9
|
+
app = generate_paths(app, options)
|
10
|
+
if app[:phpfpm] == 'enabled'
|
11
|
+
enable_phpfpm(app, options)
|
12
|
+
elsif app[:phpfpm] == 'disabled'
|
13
|
+
disable_phpfpm(app, options)
|
14
|
+
end
|
15
|
+
|
16
|
+
app
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.generate_paths(app, options)
|
20
|
+
phpfpm_config = Dir['/etc/**/php-fpm.conf'].last
|
21
|
+
sites_enabled = nil
|
22
|
+
|
23
|
+
if phpfpm_config.nil? && options[:pretend]
|
24
|
+
sites_enabled = '/etc/php/fpm-pretend/sites_enabled/'
|
25
|
+
puts " - Fake run: Testing deployment using #{sites_enabled}"
|
26
|
+
elsif phpfpm_config.nil? && !options[:pretend]
|
27
|
+
abort("\n ! ERROR: Could not establish php-fpm.conf location!")
|
28
|
+
else
|
29
|
+
puts " |+ Found php-fpm.conf at: #{phpfpm_config}."
|
30
|
+
phpfpm_config = File.readlines(phpfpm_config)
|
31
|
+
sites_enabled = phpfpm_config.grep(/^include/).last.gsub(/(^.*=|\*$|\*.conf)/, '').chomp
|
32
|
+
end
|
33
|
+
|
34
|
+
app[:phpcfg] = app[:phpcfg] ?
|
35
|
+
app[:phpcfg] :
|
36
|
+
"/home/#{app[:username]}/php-fpm/sites-enabled/#{app[:domain]}.conf"
|
37
|
+
# app[:phpcfg] = sites_enabled + "#{app[:domain].gsub('.','_')}.conf"
|
38
|
+
app
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.enable_phpfpm(app, options)
|
42
|
+
tmpdir = "/home/#{app[:username]}/tmp"
|
43
|
+
|
44
|
+
if !options[:pretend]
|
45
|
+
puts "\n |+ Enabling PHP-FPM for '#{app[:username]}'."
|
46
|
+
FileUtils.mkdir_p(File.dirname(app[:phpcfg]))
|
47
|
+
FileUtils.mkdir_p(tmpdir, mode: 1750)
|
48
|
+
FileUtils.chown(app[:username], app[:username], tmpdir)
|
49
|
+
end
|
50
|
+
|
51
|
+
pool = app[:domain].gsub('.','_')
|
52
|
+
web_user = 'nginx' if app[:nginx]
|
53
|
+
web_user = 'apache' if app[:apache]
|
54
|
+
source = options[:deploy_dir] + '/templates/applications/php/phpfpm.conf.erb'
|
55
|
+
templates = [{ target: app[:phpcfg],
|
56
|
+
source: source,
|
57
|
+
variables: { pool: pool,
|
58
|
+
username: app[:username],
|
59
|
+
web_user: web_user,
|
60
|
+
tmp: tmpdir },
|
61
|
+
dir_perms: { owner: 'root',
|
62
|
+
group: 'root',
|
63
|
+
mode: '0755' },
|
64
|
+
file_perms: { owner: 'root',
|
65
|
+
group: 'root',
|
66
|
+
mode: '0644' } }]
|
67
|
+
|
68
|
+
DanarchyDeploy::Templater.new(templates, options)
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.disable_phpfpm(app, options)
|
72
|
+
if options[:pretend]
|
73
|
+
puts " - Fake run: Remove #{app[:user_phpcfg]}"
|
74
|
+
else
|
75
|
+
puts "\n ! Disabling PHP-FPM for '#{app[:username]}'."
|
76
|
+
if File.exist?(app[:phpcfg])
|
77
|
+
File.delete(app[:phpcfg])
|
78
|
+
puts " |_ Removed: #{app[:phpcfg]}"
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
module DanarchyDeploy
|
3
|
+
module Applicator
|
4
|
+
module Redmine
|
5
|
+
def self.new(app, options)
|
6
|
+
puts "\n" + self.name
|
7
|
+
puts " > Checking on Redmine installation at #{app[:path]}"
|
8
|
+
|
9
|
+
repo = 'https://svn.redmine.org/redmine/branches/' + app[:version]
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
def self.cmd_prefix(app)
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.redmine_version(app)
|
18
|
+
version = []
|
19
|
+
version_rb = File.readlines(app[:path] + '/lib/redmine/version.rb')
|
20
|
+
version_rb.grep(/(MAJOR|MINOR|TINY)\s+=/).each do |v|
|
21
|
+
v = v.chomp.gsub!(/\s+/, '')
|
22
|
+
version.push(v.split(/=/).last)
|
23
|
+
end
|
24
|
+
|
25
|
+
version.join('.')
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.database_yml(app)
|
29
|
+
dbs = app[:database]
|
30
|
+
dbs.each do |db, values|
|
31
|
+
values[:adapter] = values[:adapter] ? values[:adapter] : 'mysql2'
|
32
|
+
values[:encoding] = values[:encoding] ? values[:encoding] : 'utf8'
|
33
|
+
end
|
34
|
+
|
35
|
+
db_yml = app[:path] + '/config/database.yml'
|
36
|
+
File.write(db_yml, dbs.to_yaml)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,146 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require_relative 'wordpress/wpcli'
|
3
|
+
require_relative 'wordpress/wpconfig'
|
4
|
+
|
5
|
+
module DanarchyDeploy
|
6
|
+
module Applicator
|
7
|
+
module WordPress
|
8
|
+
def self.new(app, options)
|
9
|
+
puts "\n" + self.name
|
10
|
+
puts " > Checking on WordPress installation at '#{app[:path]}'."
|
11
|
+
|
12
|
+
app[:prefix] = cmd_prefix(app)
|
13
|
+
wpcli = WordPress::WPCLI.new(app, options)
|
14
|
+
app = WordPress::WPConfig.new(app, options)
|
15
|
+
|
16
|
+
# if options[:first_run] &&
|
17
|
+
wpcli.install if wpcli.version[:stderr] =~
|
18
|
+
/Error: This does not seem to be a WordPress install/
|
19
|
+
|
20
|
+
siteurl = wpcli.siteurl
|
21
|
+
if siteurl =~ /http.*:\/\/(www.|)#{app[:domain]}/
|
22
|
+
puts " |+ Siteurl: #{siteurl} found in the WP database. Continuing with deployment."
|
23
|
+
elsif siteurl =~ /Error: The site you have requested is not installed/
|
24
|
+
puts " |! Domain: #{app[:domain]} not found in current database."
|
25
|
+
|
26
|
+
db_backup = app[:path] + '/' + app[:domain].gsub('.','_') + '.sql'
|
27
|
+
if File.exist?(db_backup) && options[:first_run]
|
28
|
+
puts " |+ Importing from local backup."
|
29
|
+
import = wpcli.import
|
30
|
+
else
|
31
|
+
puts " |- . No database content! Skipping deployment of #{app[:domain]}."
|
32
|
+
return app
|
33
|
+
end
|
34
|
+
else
|
35
|
+
puts " ! Domain: #{app[:domain]} does not match the database's current siteurl: #{siteurl}"
|
36
|
+
puts " |- Skipping #{app[:domain]} deployment"
|
37
|
+
return app
|
38
|
+
end
|
39
|
+
|
40
|
+
if app[:autoupdate]
|
41
|
+
wpcli.update
|
42
|
+
else
|
43
|
+
wpcli.check_update
|
44
|
+
end
|
45
|
+
|
46
|
+
app.delete(:prefix)
|
47
|
+
app
|
48
|
+
end
|
49
|
+
# if options[:pretend]
|
50
|
+
# puts "\tFake run: Skipping WordPress configuration for #{app[:domain]}"
|
51
|
+
# else
|
52
|
+
# verify_result = wp_ensure_installed(prefix, app, options)
|
53
|
+
|
54
|
+
# if verify_result[:stderr]
|
55
|
+
# puts " |+ Installing WordPress to: #{app[:path]}"
|
56
|
+
# install_result = wp_install(prefix, app, options)
|
57
|
+
# abort(' ! WordPress installation failed!') if install_result[:stderr]
|
58
|
+
# verify_result = wp_ensure_installed(prefix, app, options)
|
59
|
+
# abort(' ! WordPress verification failed!') if verify_result[:stderr]
|
60
|
+
# end
|
61
|
+
|
62
|
+
# puts " |+ WordPress #{verify_result[:stdout].chomp} found!" if verify_result[:stdout]
|
63
|
+
# app = verify_generate_wp_salts(app, options)
|
64
|
+
# DanarchyDeploy::Templater.new(app[:templates], options)
|
65
|
+
# end
|
66
|
+
|
67
|
+
# puts "\n > Verifying wp-config.php for '#{app[:path]}/wp-config.php'."
|
68
|
+
# wp_config_new(app, options)
|
69
|
+
# app
|
70
|
+
# end
|
71
|
+
|
72
|
+
private
|
73
|
+
def self.cmd_prefix(app)
|
74
|
+
"sudo -u #{app[:username]} bash -c "
|
75
|
+
# wp_root_mkdir(prefix, app, options)
|
76
|
+
# wp_cli_install(options)
|
77
|
+
# prefix
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.wp_root_mkdir(prefix, app, options)
|
81
|
+
mkdir_cmd = prefix + "'test -d #{app[:path]} || mkdir -v #{app[:path]}'"
|
82
|
+
mkdir_result = DanarchyDeploy::Helpers.run_command(mkdir_cmd, options)
|
83
|
+
|
84
|
+
if mkdir_result[:stderr]
|
85
|
+
abort(" ! Failed to create directory: #{app[:path]}!")
|
86
|
+
elsif mkdir_result[:stdout]
|
87
|
+
puts " |+ Created directory: #{app[:path]}"
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def self.wp_cli_install(options)
|
92
|
+
wpcli_install = 'bash ' + File.expand_path(
|
93
|
+
File.dirname(__FILE__) +
|
94
|
+
'/wordpress/wpcli_install.sh')
|
95
|
+
wpcli_result = DanarchyDeploy::Helpers.run_command(wpcli_install, options)
|
96
|
+
|
97
|
+
if wpcli_result[:stderr]
|
98
|
+
abort(' ! WP-CLI installation failed!')
|
99
|
+
else
|
100
|
+
puts ' |+ WP-CLI installed.'
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def self.wp_ensure_installed(prefix, app, options)
|
105
|
+
installed = false
|
106
|
+
version = nil
|
107
|
+
|
108
|
+
if Dir.entries(app[:path]) == %w[. ..]
|
109
|
+
puts " |+ Installing WordPress to: #{app[:path]}"
|
110
|
+
wp_install(prefix, app, options)
|
111
|
+
# wp_config_new(app, options)
|
112
|
+
# return
|
113
|
+
end
|
114
|
+
|
115
|
+
version = wp_version(prefix, app, options)
|
116
|
+
# Error: This does not seem to be a WordPress install.
|
117
|
+
end
|
118
|
+
|
119
|
+
def self.wp_install(prefix, app, options)
|
120
|
+
cmd = prefix + "'wp core download --path=#{app[:path]}'"
|
121
|
+
DanarchyDeploy::Helpers.run_command(cmd, options)
|
122
|
+
end
|
123
|
+
|
124
|
+
def self.wp_update(prefix, app, options)
|
125
|
+
cmd = prefix + "'wp core update --path=#{app[:path]}'"
|
126
|
+
DanarchyDeploy::Helpers.run_command(cmd, options)
|
127
|
+
end
|
128
|
+
|
129
|
+
def self.wp_version(prefix, app, options)
|
130
|
+
cmd = prefix + "'wp core version --path=#{app[:path]}'"
|
131
|
+
DanarchyDeploy::Helpers.run_command(cmd, options)
|
132
|
+
end
|
133
|
+
|
134
|
+
def self.wp_verify_uptodate()
|
135
|
+
check_cmd = prefix + "'wp core check-update --path=#{app[:path]}'"
|
136
|
+
DanarchyDeploy::Helpers.run_command(check_cmd, options)
|
137
|
+
end
|
138
|
+
|
139
|
+
def self.wp_config_verify(prefix, app, options)
|
140
|
+
config_cmd = prefix + "wp config list DB_USER DB_PASSWORD DB_NAME DB_HOST table_prefix --path=#{app[:path]} --format=json"
|
141
|
+
wp_config_current = JSON.parse(`#{config_cmd}`)
|
142
|
+
p wp_config_current
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module DanarchyDeploy
|
2
|
+
module Applicator
|
3
|
+
module WordPress
|
4
|
+
class WPCLI
|
5
|
+
def initialize(app, options)
|
6
|
+
puts "\n > Initializing WordPress CLI"
|
7
|
+
@database = app[:database]
|
8
|
+
@prefix = app[:prefix]
|
9
|
+
@path = app[:path]
|
10
|
+
@user = app[:user]
|
11
|
+
@options = options
|
12
|
+
wpcli_install
|
13
|
+
end
|
14
|
+
|
15
|
+
def install
|
16
|
+
cmd = @prefix + "'wp core download --path=#{@path}'"
|
17
|
+
DanarchyDeploy::Helpers.run_command(cmd, @options)
|
18
|
+
end
|
19
|
+
|
20
|
+
def update
|
21
|
+
cmd = @prefix + "'wp core update --path=#{@path}'"
|
22
|
+
DanarchyDeploy::Helpers.run_command(cmd, @options)
|
23
|
+
end
|
24
|
+
|
25
|
+
def version
|
26
|
+
cmd = @prefix + "'wp core version --path=#{@path}'"
|
27
|
+
DanarchyDeploy::Helpers.run_command(cmd, @options)
|
28
|
+
end
|
29
|
+
|
30
|
+
def check_update
|
31
|
+
cmd = @prefix + "'wp core check-update --path=#{@path}'"
|
32
|
+
DanarchyDeploy::Helpers.run_command(cmd, @options)
|
33
|
+
end
|
34
|
+
|
35
|
+
def siteurl
|
36
|
+
cmd = @prefix + "'wp option get siteurl --path=#{@path}'"
|
37
|
+
siteurl = DanarchyDeploy::Helpers.run_command(cmd, @options)
|
38
|
+
|
39
|
+
if siteurl[:stdout]
|
40
|
+
return siteurl[:stdout].chomp
|
41
|
+
else
|
42
|
+
return siteurl[:stderr]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def import
|
47
|
+
cmd = @prefix + "'wp db import #{@database[:backup]} --path=#{@path}'"
|
48
|
+
DanarchyDeploy::Helpers.run_command(cmd, @options)
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
def wpcli_install
|
54
|
+
install_cmd = 'bash ' + __dir__ + '/wpcli_install.sh'
|
55
|
+
wpcli_result = DanarchyDeploy::Helpers.run_command(
|
56
|
+
install_cmd, @options)
|
57
|
+
|
58
|
+
if wpcli_result[:stderr]
|
59
|
+
abort(' ! WP-CLI installation failed!')
|
60
|
+
else
|
61
|
+
puts ' |+ WP-CLI installed.'
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|