Class: Xezat::Command::Port

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

Constant Summary

Constants included from Xezat

DATA_DIR, INI_FILE, LOG, REPOSITORY_DIR, ROOT_DIR, TEMPLATE_DIR, VERSION

Instance Method Summary collapse

Methods included from Xezat

#config, #packages, #variables

Constructor Details

#initialize(options, cygport) ⇒ Port

Returns a new instance of Port.



13
14
15
16
# File 'lib/xezat/command/port.rb', line 13

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

Instance Method Details

#executeObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/xezat/command/port.rb', line 18

def execute
  vars = variables(@cygport)
  d = File.expand_path(File.join(get_port_directory(@options), vars[:PN]))
  fuo = {
      noop: @options[:noop],
      verbose: @options[:noop] || @options[:verbose]
  }

  FileUtils.mkdir_p(d, fuo)
  FileUtils.cp(File.expand_path(File.join(vars[:top], @cygport)), d, fuo)
  FileUtils.cp(File.expand_path(File.join(vars[:C], 'README')), d, fuo)
  src_patch = File.expand_path(File.join(vars[:patchdir], "#{vars[:PF]}.src.patch"))
  FileUtils.cp(src_patch, d, fuo) unless FileTest.zero?(src_patch)
end

#get_port_directory(options) ⇒ Object



33
34
35
36
37
38
# File 'lib/xezat/command/port.rb', line 33

def get_port_directory(options)
  conf = config(@options[:config])
  port_dir = conf['xezat']['portdir'] || options[:portdir]
  raise NoPortDirectoryError if port_dir.nil?
  port_dir
end