Class: PreCommit::Cli

Inherits:
Object
  • Object
show all
Defined in:
lib/pre-commit/cli.rb

Constant Summary collapse

PRE_COMMIT_HOOK_PATH =
'.git/hooks/pre-commit'

Instance Method Summary collapse

Instance Method Details

#answered_yes?(answer) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/pre-commit/cli.rb', line 9

def answered_yes?(answer)
  answer =~ /y\n/i || answer == "\n"
end

#ask_to_overwriteObject



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/pre-commit/cli.rb', line 21

def ask_to_overwrite
  puts "pre-commit: WARNING There is already a pre-commit hook installed in this git repo."
  print "Would you like to overwrite it? [Yn] "
  answer = $stdin.gets

  if answered_yes?(answer)
    FileUtils.rm(PRE_COMMIT_HOOK_PATH)
  else
    puts "Not overwriting existing hook: #{PRE_COMMIT_HOOK_PATH}"
    puts
    exit(1)
  end
end

#installObject



13
14
15
16
17
18
19
# File 'lib/pre-commit/cli.rb', line 13

def install
  if File.exists?(PRE_COMMIT_HOOK_PATH)
    ask_to_overwrite
  end

  install_pre_commit_hook
end

#install_pre_commit_hookObject



35
36
37
38
39
# File 'lib/pre-commit/cli.rb', line 35

def install_pre_commit_hook
  hook = File.join(PreCommit.root, 'templates', 'pre-commit-hook')
  FileUtils.cp(hook, PRE_COMMIT_HOOK_PATH)
  FileUtils.chmod(0755, PRE_COMMIT_HOOK_PATH)
end