Sha256: ba4a70434babc8279413c218a7d19f9337b4bcd53f9de195053d520a40a2c0e3

Contents?: true

Size: 1.23 KB

Versions: 1

Compression:

Stored size: 1.23 KB

Contents

require 'fileutils'

module Databasion
  
  class Svnilize
    
    @@config = nil
    
    class SvnilizeError < StandardError; end
    
    def self.config=(config)
      @@config = config
    end
    
    def self.config
      @@config
    end
    
    def self.svn_path
      @@config['svn']['bin']
    end
    
    def self.commit(path=Dir.pwd)
      raise SvnilizeError, "A file lock is in place.  Cannot commit." if check_lock?
      create_lock
      svn_add_files(path)
      Databasion::LOGGER.info 'running: svn commit -m "databasion auto commit"'
      system svn_path + ' commit -m "databasion auto commit"'
      Databasion::LOGGER.info 'running: svn update'
      system svn_path + ' update'
      remove_lock
    end
    
    def self.svn_add_files(path)
      files = Dir[path + "/**/*"]
      files.each do |file|
        Databasion::LOGGER.info 'running: svn add %s' % file unless file =~ /svn.lock/
        system svn_path + ' add %s' % file unless file =~ /svn.lock/
      end
    end
    
    def self.check_lock?
      File.exist?('svn.lock') ? true : false
    end
    
    def self.create_lock
      File.new('svn.lock', 'w') unless check_lock?
    end
    
    def self.remove_lock
      FileUtils.rm 'svn.lock'
    end
    
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
databasion-0.1.0 lib/databasion/svnilize.rb