Module: GGSM::Hooks

Included in:
Submodule
Defined in:
lib/ggsm/hook/hooks.rb

Instance Method Summary collapse

Instance Method Details

#check_hooksObject



3
4
5
6
7
8
9
10
11
# File 'lib/ggsm/hook/hooks.rb', line 3

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

#cp_files(target_path) ⇒ Object



46
47
48
49
50
# File 'lib/ggsm/hook/hooks.rb', line 46

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

#cp_hooks(sub) ⇒ Object



41
42
43
44
# File 'lib/ggsm/hook/hooks.rb', line 41

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

#install_billowObject



13
14
15
16
# File 'lib/ggsm/hook/hooks.rb', line 13

def install_billow
  path = `gem which ggsm`.split('/ggsm.rb')[0]
  `sudo sh #{path}/res/install_billow.sh`
end

#update_hooksObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/ggsm/hook/hooks.rb', line 18

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