Sha256: 21ae09bb2331977d312747ab977903b3fc2c9e9b813f90231dbe15f8a5e86297

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

module GGSM
  module Hooks
    def check_hooks
      if update_hooks
        subs = get_submodule
        subs.each do |sub|
          cp_hooks(sub)
        end
      end
    end

    def update_hooks
      version = `ggsm v`
      ggsm_path = '.git/ggsm'
      unless File.exist?(ggsm_path)
        Dir.mkdir(ggsm_path)
      end

      config_path = "#{ggsm_path}/VERSION"
      target_path = '.git/hooks'

      if !File.exist?(config_path) || version != IO.read(config_path)
        cp_files(target_path)

        file = File.new(config_path, 'w')
        file << version
        file.close

        puts '已更新Hooks'.blue
        return true
      end
      false
    end

    def cp_hooks(sub)
      target_path = ".git/modules/#{sub}/hooks"
      cp_files(target_path)
    end

    def cp_files(target_path)
      path = `gem which ggsm`.split('/ggsm.rb')[0]
      begin
      `cp #{path}/ggsm/hook/commit-msg #{target_path}/commit-msg`
      `cp #{path}/ggsm/hook/pre-commit  #{target_path}/pre-commit`
      rescue => e
        `copy #{path}/ggsm/hook/commit-msg #{target_path}/commit-msg`
        `copy #{path}/ggsm/hook/pre-commit  #{target_path}/pre-commit`
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ggsm-1.7.4 lib/ggsm/util/hooks.rb