class AccuHook::Installation

Public Class Methods

new(repo) click to toggle source
# File lib/accuhook/command_line.rb, line 47
def initialize(repo)
  install(repo)
end

Public Instance Methods

install(repo_path) click to toggle source
# File lib/accuhook/command_line.rb, line 51
def install(repo_path)
  repository = Grit::Repo.new(repo_path)

  repo_hooks = File.join(repo_path, '.git', 'hooks')
  accurev_repo = File.join(repo_path, '.git', 'accurev.git')
  accurev_hooks = File.join(repo_path, '.git', 'accurev.git', 'hooks')

  repository.fork_bare(accurev_repo, :shared => false, :mirror => true)
  repository.remote_add("accurev", accurev_repo)

  FileUtils.mkdir accurev_hooks unless File.exist? accurev_hooks
  FileUtils.mkdir repo_hooks unless File.exist? repo_hooks

  FileUtils.install(File.join(File.dirname(__FILE__), "hooks", "post-commit"), repo_hooks, :mode => 0755)
  FileUtils.install(File.join(File.dirname(__FILE__), "hooks", "post-receive"), accurev_hooks, :mode => 0755)
end