class Rubtools::Tools::Svn

Public Class Methods

new() click to toggle source
# File lib/tools/svn.rb, line 6
def initialize
  @svn = which "svn"
  
  @svn_config = config.svn
  raise "Add the key 'svn' in the config file" unless @svn_config

  @install_dir = @svn_config.install_dir
  raise "Add the key install_dir: /path/to/folder in the config file" unless @install_dir
  raise "Subversion isn't installed" unless @svn
  raise "Folder doesn't exists: #{@install_dir}" unless File.exists? @install_dir
end

Public Instance Methods

co_all() click to toggle source

Cloning all repositories located into rubtools.yml

# File lib/tools/svn.rb, line 27
def co_all
  for repo in config.svn.repositories
    co repo
  end
end
print_repos() click to toggle source

Print all repositories

up_all() click to toggle source

Pull all repositories located into rubtools.yml

# File lib/tools/svn.rb, line 35
def up_all
  for repo in config.svn.repositories
    up repo
  end
end

Private Instance Methods

co(repo) click to toggle source

Cloning a specific repository

# File lib/tools/svn.rb, line 44
def co repo
    repo_path = File.join @install_dir, repo.name

    unless File.exists? repo_path
      success "Checkouting #{repo.name} from #{repo.url}"
      exec("#{@svn} checkout #{repo.url} #{repo_path}") do |status|
        success "> done" if status.success?
      end
    else
      success "Repository #{repo.name} already checkout"
    end
end
up(repo) click to toggle source

Pulling a specific repository

# File lib/tools/svn.rb, line 60
def up repo
    repo_path = File.join @install_dir, repo.name

    if File.exists? repo_path
      success "Updating #{repo.name} repository"
      exec "#{@svn} update #{repo.url}" do |status|
        success "> done" if status.success?
      end
    else
      error "Repository #{repo.name} doensn't exists"
      co repo
    end
end