class Shuttle::Deploy

Attributes

config[R]
environment[R]
ssh[R]
target[R]
version[R]

Public Class Methods

new(config, ssh, target, environment) click to toggle source
# File lib/shuttle/deploy.rb, line 12
def initialize(config, ssh, target, environment)
  @config      = config
  @target      = target
  @ssh         = ssh
  @environment = environment

  if ssh.file_exists?(version_path)
    res = ssh.capture("cat #{version_path}")
    @version = (res.empty? ? 1 : Integer(res) + 1).to_s
  else
    @version = 1
  end
end

Public Instance Methods

available_releases() click to toggle source

Get list of all existing releases @return [Array<Integer>]

# File lib/shuttle/deploy.rb, line 34
def available_releases
  if ssh.directory_exists?(deploy_path('releases'))
    releases = ssh.capture("ls --color=never #{deploy_path}/releases")

    releases.
      scan(/[\d]+/).
      map { |s| s.strip.to_i }.
      sort
  else
    []
  end
end
last_version() click to toggle source

Get current deploy version @return [Integer]

# File lib/shuttle/deploy.rb, line 28
def last_version
  @last_version ||= ssh.read_file(version_path).to_i
end