class GithubBackup::Repository
Attributes
sawyer_resource[R]
shell[R]
Public Class Methods
new(sawyer_resource, opts = {})
click to toggle source
# File lib/github-backup/repository.rb, line 5 def initialize(sawyer_resource, opts = {}) @sawyer_resource = sawyer_resource @shell = opts[:shell] || Shell.new end
Public Instance Methods
backup(backup_root)
click to toggle source
# File lib/github-backup/repository.rb, line 10 def backup(backup_root) full_backup_path = File.join(backup_root, backup_path) puts "Backing up #{ full_backup_path }" if File.exist?(full_backup_path) backup_repository_incremental(full_backup_path) else backup_repository_initial(full_backup_path) end end
backup_path()
click to toggle source
# File lib/github-backup/repository.rb, line 26 def backup_path "#{ sawyer_resource.full_name }.git" end
clone_url()
click to toggle source
# File lib/github-backup/repository.rb, line 22 def clone_url sawyer_resource.ssh_url end
Private Instance Methods
backup_repository_incremental(path)
click to toggle source
# File lib/github-backup/repository.rb, line 36 def backup_repository_incremental(path) FileUtils.cd(path) do shell.run('git remote update') end end
backup_repository_initial(path)
click to toggle source
# File lib/github-backup/repository.rb, line 32 def backup_repository_initial(path) shell.run("git clone --mirror -n #{ clone_url } #{ path }") end