Class: MirrorGithub::Git

Inherits:
Object
  • Object
show all
Defined in:
lib/mirror_github/git.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(target_dir, repository) ⇒ Git

Takes a target_dir string and a Repository class



8
9
10
11
12
13
# 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

Instance Attribute Details

#repositoryObject

Returns the value of attribute repository.



4
5
6
# File 'lib/mirror_github/git.rb', line 4

def repository
  @repository
end

#target_dirObject



35
36
37
# File 'lib/mirror_github/git.rb', line 35

def target_dir
  File.expand_path(@target_dir)
end

Instance Method Details

#create_mirrorObject



15
16
17
# 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_dirObject



23
24
25
# File 'lib/mirror_github/git.rb', line 23

def go_to_mirror_dir
  "cd #{File.join(target_dir, mirror_directory)}"
end

#go_to_target_dirObject



19
20
21
# File 'lib/mirror_github/git.rb', line 19

def go_to_target_dir
  "cd #{target_dir}"
end

#mirror_directoryObject



27
28
29
# File 'lib/mirror_github/git.rb', line 27

def mirror_directory
  "#{repository.name}.git"
end

#mirror_exists?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/mirror_github/git.rb', line 31

def mirror_exists?
  File.exists? File.join(target_dir, "#{mirror_directory}")
end

#update_mirrorObject



39
40
41
# File 'lib/mirror_github/git.rb', line 39

def update_mirror
  `#{go_to_mirror_dir} && git fetch`
end