Class: Dply::ReleaseHelper

Inherits:
Object
  • Object
show all
Includes:
Logger
Defined in:
lib/dply/release_helper.rb

Instance Method Summary collapse

Methods included from Logger

#debug?, #logger, stderr, #stderr

Instance Method Details

#all_releasesObject



25
26
27
# File 'lib/dply/release_helper.rb', line 25

def all_releases
  Dir["releases/*"].sort! { |x, y| File.mtime(y) <=> File.mtime(x) }
end

#current_release_dirObject



7
8
9
10
11
12
# File 'lib/dply/release_helper.rb', line 7

def current_release_dir
  current_dir = "current"
  return if not File.symlink? current_dir
  name = File.basename (File.readlink current_dir)
  "releases/#{name}"
end

#parse(name) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/dply/release_helper.rb', line 29

def parse(name)
  arr = name.split("-")
  deployed = File.exist? "releases/#{name}/.deployed"
  release = {
    revision: arr[0] || "NA",
    project: arr[1] || "NA",
    branch: arr[2] || "NA",
    timestamp: arr[3] || "NA",
    deployed: deployed
  }
end

#prune_releases(keep: 5) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/dply/release_helper.rb', line 14

def prune_releases(keep: 5)
  releases = all_releases
  releases.reject! { |x| x == current_release_dir }
  old_releases = releases[keep..-1]
  return if not old_releases
  old_releases.each do |d|
    logger.info "deleting old release #{File.basename d}"
    FileUtils.rm_rf d
  end
end