Module: CommitMeat::Installation

Defined in:
lib/commit-meat/installation.rb

Constant Summary collapse

HOOK_PATH =
File.join '.git', 'hooks', 'commit-msg'
HOOK_DIR =
File.join '.git', 'hooks'
HOOK_CONTENT =
<<END
#!/usr/bin/env ruby
begin
  require 'commit-meat'
rescue LoadError
  require 'rubygems'
  require 'commit-meat'
end

CommitMeat::run()
END

Class Method Summary collapse

Class Method Details

.installObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/commit-meat/installation.rb', line 18

def self.install
  if not File.directory?('.git')
    puts "You don't appear to be in the base directory of a git project.".red
    exit 1
  end

  Dir.mkdir(HOOK_DIR) unless File.directory?(HOOK_DIR)

  if File.exists? HOOK_PATH
    puts "A pre-commit hook already exists for this project.".red
    exit 1
  end

  File.open(HOOK_PATH, 'w') {|f| f.write(HOOK_CONTENT) }
  FileUtils.chmod 0755, HOOK_PATH
  puts "Installed Commit-Meat hook as:".green
  puts "  -> #{File.expand_path(HOOK_PATH)}".green
  puts "(To remove later run: `commit-meat --uninstall`)."
end

.uninstallObject



38
39
40
41
42
43
44
45
# File 'lib/commit-meat/installation.rb', line 38

def self.uninstall
  if File.exists? HOOK_PATH
    FileUtils.rm HOOK_PATH
    puts "Uninstalled Commit-Meat for this Git repository.".green
  else
    puts "Commit-Meat is not enabled for this directory, nothing was uninstalled.".yellow
  end
end