Class: LegitGit::Installation

Inherits:
Object
  • Object
show all
Defined in:
lib/legit-the-git/command_line.rb

Instance Method Summary collapse

Constructor Details

#initialize(repo_path) ⇒ Installation

Refactor!



50
51
52
53
54
55
56
# File 'lib/legit-the-git/command_line.rb', line 50

def initialize(repo_path)
  @repository = Grit::Repo.new(repo_path)
  @accurev_repo = File.join(repo_path, '.git', 'accurev.git')

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

Instance Method Details

#installObject



58
59
60
61
62
63
64
65
66
# File 'lib/legit-the-git/command_line.rb', line 58

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

  FileUtils.mkdir_p([@accurev_hooks, @repo_hooks])

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

#uninstallObject



68
69
70
71
72
73
74
75
76
# File 'lib/legit-the-git/command_line.rb', line 68

def uninstall
  unless @repository.remotes.select {|r| r.name =~ /accurev/}.empty?
    git = Grit::Git.new(File.expand_path(File.join(Dir.pwd, '.git/')))
    git.native(:remote, {}, 'rm', 'accurev')
  end

  FileUtils.rm_rf([@accurev_repo, File.join(@repo_hooks, "hooks", "post-commit")])
  FileUtils.rm_rf([@accurev_repo, File.join(@repo_hooks, "hooks", "pre-receive")])
end