Class: Roger::Release::Finalizers::Dir

Inherits:
Base show all
Defined in:
lib/roger/release/finalizers/dir.rb

Overview

Finalizes the release into a directory in target_path

The directory name will have the format PREFIX-VERSION

Instance Attribute Summary

Attributes inherited from Processors::Base

#options, #release

Instance Method Summary collapse

Methods inherited from Processors::Base

#call, #name

Instance Method Details

#default_optionsObject

Parameters:

  • options (Hash)

    a customizable set of options



12
13
14
15
16
17
# File 'lib/roger/release/finalizers/dir.rb', line 12

def default_options
  {
    prefix: "html",
    target_path: release.target_path
  }
end

#performObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/roger/release/finalizers/dir.rb', line 19

def perform
  name = [@options[:prefix], @release.scm.version].join("-")

  target_dir = Pathname.new(@options[:target_path])
  FileUtils.mkdir_p(target_dir) unless target_dir.exist?

  target_path = target_dir + name

  release.log(self, "Finalizing release to #{target_path}")

  if File.exist?(target_path)
    release.log(self, "Removing existing target #{target_path}")
    FileUtils.rm_rf(target_path)
  end

  FileUtils.cp_r release.build_path, target_path
end