class MirrorGithub::Git

Attributes

repository[RW]
target_dir[W]

Public Class Methods

new(target_dir, repository) click to toggle source

Takes a target_dir string and a Repository class

# File lib/mirror_github/git.rb, line 8
def initialize(target_dir, repository)
  self.target_dir = target_dir
  raise "GitHub backup directory, #{self.target_dir}, does not exist!" unless File.directory?(self.target_dir)

  self.repository = repository
end

Public Instance Methods

create_mirror() click to toggle source
# File lib/mirror_github/git.rb, line 15
def create_mirror
  `#{go_to_target_dir} && git clone --mirror #{repository.ssh_url} #{mirror_directory}`
end
go_to_mirror_dir() click to toggle source
# File lib/mirror_github/git.rb, line 23
def go_to_mirror_dir
  "cd #{File.join(target_dir, mirror_directory)}"
end
go_to_target_dir() click to toggle source
# File lib/mirror_github/git.rb, line 19
def go_to_target_dir
  "cd #{target_dir}"
end
mirror_directory() click to toggle source
# File lib/mirror_github/git.rb, line 27
def mirror_directory
  "#{repository.name}.git"
end
mirror_exists?() click to toggle source
# File lib/mirror_github/git.rb, line 31
def mirror_exists?
  File.exists? File.join(target_dir, "#{mirror_directory}")
end
target_dir() click to toggle source
# File lib/mirror_github/git.rb, line 35
def target_dir
  File.expand_path(@target_dir)
end
update_mirror() click to toggle source
# File lib/mirror_github/git.rb, line 39
def update_mirror
  `#{go_to_mirror_dir} && git fetch`
end