Sha256: a3aaf2827b2f9e6aabbd4bc5082e1ee6adfafe8eb81d4f0412ffae8387cd7d2e

Contents?: true

Size: 690 Bytes

Versions: 1

Compression:

Stored size: 690 Bytes

Contents

require 'fileutils'
require 'clenver/logging'

class Link
  include Logging
  MAX_REPEAT = 3
  attr_accessor :src, :dst
  def initialize(src,dst)
    @src = src
    @dst = dst
  end

  def create
    puts "Link.create"
    dst.each do |d|
      i = 0
      d = d.to_s.gsub(/\$\w+/) {|m| ENV[m[1..-1]]}
      logger.debug("d:#{d}")
      logger.debug("src:#{src.gsub(/\$\w+/) {|n| ENV[n[1..-1]]}}")
      while i < MAX_REPEAT do
        begin
          File.symlink(src.gsub(/\$\w+/) {|n| ENV[n[1..-1]]}, d)
        rescue SystemCallError
          FileUtils.mv(d, d + "_old")
        else
          logge.debug("else")
          break
        end
        i += 1
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
clenver-0.1.14 lib/clenver/link.rb