Sha256: 143e1427648c6756f3290b67ff4485926df11f5f904ed2d551142eb6630bf3b7

Contents?: true

Size: 966 Bytes

Versions: 7

Compression:

Stored size: 966 Bytes

Contents

require 'fileutils'
require 'pre-commit/base'

class PreCommit
  class Cli

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

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

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

      install_pre_commit_hook
    end

    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

    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

  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
pre-commit-0.6.1 lib/pre-commit/cli.rb
pre-commit-0.6.0 lib/pre-commit/cli.rb
pre-commit-0.5.0 lib/pre-commit/cli.rb
pre-commit-0.4.0 lib/pre-commit/cli.rb
pre-commit-0.3.1 lib/pre-commit/cli.rb
pre-commit-0.3.0 lib/pre-commit/cli.rb
pre-commit-0.2.0 lib/pre-commit/cli.rb