Module: Buildizer::Packager::MiscMod

Included in:
Buildizer::Packager
Defined in:
lib/buildizer/packager/misc_mod.rb

Instance Method Summary collapse

Instance Method Details

#command(*args, do_raise: false, log_failure: nil, **kwargs) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
# File 'lib/buildizer/packager/misc_mod.rb', line 4

def command(*args, do_raise: false, log_failure: nil, **kwargs)
  if debug
    Shellfold.run(*args, log_failure: log_failure, **kwargs).tap do |cmd|
      if not cmd.status.success? and do_raise
        raise Error.new(error: :error, message: "external command error")
      end
    end
  else
    raw_command(*args, do_raise: do_raise, **kwargs)
  end
end

#command!(*args, **kwargs) ⇒ Object



16
17
18
# File 'lib/buildizer/packager/misc_mod.rb', line 16

def command!(*args, **kwargs)
  command(*args, do_raise: true, log_failure: true, **kwargs)
end

#raw_command(*args, do_raise: false, **kwargs) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/buildizer/packager/misc_mod.rb', line 20

def raw_command(*args, do_raise: false, **kwargs)
  Mixlib::ShellOut.new(*args, **kwargs).tap do |cmd|
    cmd.run_command
    if not cmd.status.success? and do_raise
      raise Error.new(error: :error,
                      message: "external command error: " +
                               [args.join(' '),
                                cmd.stdout + cmd.stderr].reject(&:empty?).join(' => '))
    end
  end
end

#raw_command!(*args, **kwargs) ⇒ Object



32
33
34
# File 'lib/buildizer/packager/misc_mod.rb', line 32

def raw_command!(*args, **kwargs)
  raw_command(*args, do_raise: true, **kwargs)
end

#with_log(desc: nil, &blk) ⇒ Object



53
54
55
56
57
58
# File 'lib/buildizer/packager/misc_mod.rb', line 53

def with_log(desc: nil, &blk)
  puts("   #{desc}") if debug and desc
  blk.call do |status|
    puts("=> #{desc} [#{status || 'OK'}]") if debug and desc
  end
end

#write_path(path, value) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/buildizer/packager/misc_mod.rb', line 36

def write_path(path, value)
  with_log(desc: "Write path #{path}") do |&fin|
    recreate = path.exist?
    if path.exist?
      if path.read == value
        fin.call 'OK'
      else
        path.write value
        fin.call 'UPDATED'
      end
    else
      path.write value
      fin.call 'CREATED'
    end
  end
end