module Buildizer::Buildizer::OvercommitMod

Public Instance Methods

_overcommit_add_precommit!(name, hookcode, desc: nil, required: true) click to toggle source
# File lib/buildizer/buildizer/overcommit_mod.rb, line 82
def _overcommit_add_precommit!(name, hookcode, desc: nil, required: true)
  hook_name = name.to_s.split('_').map(&:capitalize).join
  overcommit_conf['PreCommit'] ||= {}
  overcommit_conf['PreCommit'][hook_name] = {}.tap do |hook|
    hook['enabled'] = true
    hook['required'] = required
    hook['desc'] = desc if desc
  end
  overcommit_conf_dump!

  path = overcommit_hooks_pre_commit_path.join("#{name}.rb")
  write_path path, hookcode
  command! 'overcommit --sign pre-commit'
end
overcommit_buildizer_require() click to toggle source
# File lib/buildizer/buildizer/overcommit_mod.rb, line 37
def overcommit_buildizer_require
  overcommit_buildizer_require_list.map {|req| "      require '#{req}'"}.join("\n")
end
overcommit_buildizer_require_list() click to toggle source
# File lib/buildizer/buildizer/overcommit_mod.rb, line 30
def overcommit_buildizer_require_list
  [].tap do |res|
    res << 'bundler/setup' if ENV.key? 'BUNDLE_BIN_PATH'
    res << 'buildizer'
  end
end
overcommit_ci_setup!() click to toggle source
# File lib/buildizer/buildizer/overcommit_mod.rb, line 61
      def overcommit_ci_setup!
        hookcode = <<-HOOKCODE
module Overcommit::Hook::PreCommit
  class BuildizerCiVerify < Base
    def run
#{overcommit_buildizer_require}

      Buildizer::Buildizer.new.ci.configuration_actual!
      :pass
    rescue ::Buildizer::Error => e
      $stderr.puts e.net_status.net_status_message
      :fail
    end
  end
end
        HOOKCODE

        _overcommit_add_precommit!(:buildizer_ci_verify, hookcode,
                                   desc: "Verify #{ci.ci_name} configuration is up to date")
      end
overcommit_conf() click to toggle source
# File lib/buildizer/buildizer/overcommit_mod.rb, line 16
def overcommit_conf
  @overcommit_conf ||= overcommit_conf_path.load_yaml
end
overcommit_conf_dump!() click to toggle source
# File lib/buildizer/buildizer/overcommit_mod.rb, line 20
def overcommit_conf_dump!
  write_yaml overcommit_conf_path, overcommit_conf
  command! 'overcommit --sign'
end
overcommit_conf_path() click to toggle source
# File lib/buildizer/buildizer/overcommit_mod.rb, line 4
def overcommit_conf_path
  package_path.join('.overcommit.yml')
end
overcommit_hooks_path() click to toggle source
# File lib/buildizer/buildizer/overcommit_mod.rb, line 8
def overcommit_hooks_path
  package_path.join('.git-hooks')
end
overcommit_hooks_pre_commit_path() click to toggle source
# File lib/buildizer/buildizer/overcommit_mod.rb, line 12
def overcommit_hooks_pre_commit_path
  overcommit_hooks_path.join('pre_commit')
end
overcommit_setup!() click to toggle source
# File lib/buildizer/buildizer/overcommit_mod.rb, line 25
def overcommit_setup!
  overcommit_conf_dump!
  command! 'overcommit --install'
end
overcommit_verify_setup!() click to toggle source
# File lib/buildizer/buildizer/overcommit_mod.rb, line 41
      def overcommit_verify_setup!
        hookcode = <<-HOOKCODE
module Overcommit::Hook::PreCommit
  class BuildizerVerify < Base
    def run
#{overcommit_buildizer_require}

      ::Buildizer::Buildizer.new.verify
      :pass
    rescue ::Buildizer::Error => e
      $stderr.puts e.net_status.net_status_message
      :fail
    end
  end
end
        HOOKCODE

        _overcommit_add_precommit!(:buildizer_verify, hookcode, desc: "Verify Buildizer conf file")
      end