Module: Shuttle::WordpressVip

Included in:
Wordpress
Defined in:
lib/shuttle/deployment/wordpress/vip.rb

Constant Summary collapse

VIP_URL =
"https://vip-svn.wordpress.com/plugins/"

Instance Method Summary collapse

Instance Method Details

#vip_get_configObject



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/shuttle/deployment/wordpress/vip.rb', line 56

def vip_get_config
  data = config.wordpress.vip
  if data.nil?
   error "Please add VIP credentials to config."
  end

  if !data.user
    error "VIP user is empty. Please set :user parameter"
  end

  if !data.password
    error "VIP password is empty. Please set :password parameter"
  end

  data
end

#vip_installObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/shuttle/deployment/wordpress/vip.rb', line 32

def vip_install
  log "Installing WordPress VIP"

  vip = vip_get_config

  options = [
    "--username #{vip.user}",
    "--password #{vip.password}",
    "--non-interactive",
    VIP_URL,
    vip_path
  ].join(' ')

  cmd = "svn co #{options}"

  res = ssh.run(cmd, &method(:stream_output))

  if res.success?
    log "WordPress VIP installed"
  else
    raise DeployError, "Unable to install WordPress VIP. Reason: #{res.output}"
  end
end

#vip_installed?Boolean

Check if wordpress VIP is installed

Returns:

  • (Boolean)


19
20
21
# File 'lib/shuttle/deployment/wordpress/vip.rb', line 19

def vip_installed?
  ssh.directory_exists?(vip_path)
end


73
74
75
76
77
78
79
80
81
82
# File 'lib/shuttle/deployment/wordpress/vip.rb', line 73

def vip_link
  ssh.run("mkdir -p #{release_path}/wp-content/themes/vip")
  result = ssh.run("cp -a #{vip_path} #{release_path('wp-content/themes/vip/plugins')}")

  if result.success?
    log "WordPress VIP is linked"
  else
    error "Unable to link VIP: #{result.output}"
  end
end

#vip_pathString

Get wordpress VIP shared path

Returns:

  • (String)


7
8
9
# File 'lib/shuttle/deployment/wordpress/vip.rb', line 7

def vip_path
  @vip_path ||= shared_path('wordpress/vip')
end

#vip_required?Boolean

Check if wordpress VIP is required

Returns:

  • (Boolean)


13
14
15
# File 'lib/shuttle/deployment/wordpress/vip.rb', line 13

def vip_required?
  !config.wordpress.vip.nil?
end

#vip_updateObject

Update wordpress VIP



24
25
26
27
28
29
30
# File 'lib/shuttle/deployment/wordpress/vip.rb', line 24

def vip_update
  if vip_installed?
    ssh.run("rm -rf #{vip_path}")
  end

  vip_install
end