Sha256: b3aa2a3f304590617440b26518d6dcf15aa2b8ba85ce178271cc5ab6789b7602

Contents?: true

Size: 691 Bytes

Versions: 1

Compression:

Stored size: 691 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
          logger.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.15 lib/clenver/link.rb