Sha256: 0b021d4dc02135ed6fad8d962b2e0d93e8f79e86ac14713473853d4971a090e0
Contents?: true
Size: 941 Bytes
Versions: 7
Compression:
Stored size: 941 Bytes
Contents
module Kubes::Hooks class Builder extend Memoist include Dsl include DslEvaluator include Kubes::Logging include Kubes::Util::Sh attr_accessor :name def initialize(name, file) @name = name.to_s @file = file # IE: .kubes/config/kubectl/hooks.rb @hooks = {before: {}, after: {}} end def build return @hooks unless File.exist?(@file) evaluate_file(@file) @hooks.deep_stringify_keys! end memoize :build def run_hooks build run_hook("before") yield if block_given? run_hook("after") end def run_hook(type) execute = @hooks.dig(type, @name.to_s, "execute") return unless execute exit_on_fail = @hooks.dig(type, @name.to_s, "exit_on_fail") exit_on_fail = exit_on_fail.nil? ? true : exit_on_fail logger.info "Running #{type} hook" sh(execute, exit_on_fail: exit_on_fail) end end end
Version data entries
7 entries across 7 versions & 1 rubygems