Class: Xezat::Command::Dist

Inherits:
Object
  • Object
show all
Includes:
Xezat
Defined in:
lib/xezat/command/dist.rb

Constant Summary

Constants included from Xezat

Xezat::CONFIG_FILE, DATA_DIR, REPOSITORY_DIR, ROOT_DIR, TEMPLATE_DIR, VERSION

Instance Method Summary collapse

Methods included from Xezat

#bashvar, #config, #packages, #variables

Constructor Details

#initialize(options, cygport) ⇒ Dist

Returns a new instance of Dist.



16
17
18
19
# File 'lib/xezat/command/dist.rb', line 16

def initialize(options, cygport)
  @options = options
  @cygport = cygport
end

Instance Method Details

#executeObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/xezat/command/dist.rb', line 21

def execute
  Xezat.logger.debug('Start distributing')
  vars = variables(@cygport)

  noop = @options[:noop]
  verbose = @options[:noop] || @options[:verbose]

  arch = vars[:ARCH]
  release_dir = File.expand_path(File.join(get_dist_directory(@options), arch, 'release'))
  pkg_dir = File.expand_path(File.join(release_dir, vars[:PN]))
  dist_dir = File.expand_path(File.join(vars[:distdir], vars[:PN]))

  if Dir.exist?(pkg_dir)
    Xezat.logger.warn("  Package directory already exists : #{pkg_dir} (skip)")
  else
    Xezat.logger.debug("  Copy package to release directory : #{pkg_dir}")
    FileUtils.cp_r(dist_dir, release_dir, noop:, verbose:)
  end

  Xezat.logger.debug('End distributing')
end

#get_dist_directory(options) ⇒ Object



43
44
45
46
47
48
49
50
# File 'lib/xezat/command/dist.rb', line 43

def get_dist_directory(options)
  conf = config(options[:config])
  dist_dir = conf['xezat']['distdir'] || options[:distdir]
  raise NoDistDirectoryError if dist_dir.nil?

  Xezat.logger.debug("  Dist directory: #{dist_dir}")
  dist_dir
end