Module: GDK::Hooks

Defined in:
lib/gdk/hooks.rb

Class Method Summary collapse

Class Method Details

.execute_hook_cmd(cmd, description) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/gdk/hooks.rb', line 21

def self.execute_hook_cmd(cmd, description)
  GDK::Output.abort("Cannot execute '#{description}' hook '#{cmd}' as it's invalid") unless cmd.is_a?(String)
  GDK::Output.info("#{description} hook -> #{cmd}")

  sh = Shellout.new(cmd, chdir: GDK.root)
  sh.stream

  raise HookCommandError, "'#{cmd}' has exited with code #{sh.exit_code}." unless sh.success?

  true
rescue HookCommandError, Shellout::StreamCommandFailedError => e
  GDK::Output.abort(e.message, e)
end

.execute_hooks(hooks, description) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/gdk/hooks.rb', line 13

def self.execute_hooks(hooks, description)
  hooks.each do |cmd|
    execute_hook_cmd(cmd, description)
  end

  true
end

.with_hooks(hooks, name) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/gdk/hooks.rb', line 5

def self.with_hooks(hooks, name)
  execute_hooks(hooks[:before], "#{name}: before")
  result = block_given? ? yield : true
  execute_hooks(hooks[:after], "#{name}: after")

  result
end