Sha256: d759dc9965ad420c364be0088b4fe5490b674528cdfd3ff290e2d620c2f5338c

Contents?: true

Size: 1.52 KB

Versions: 1

Compression:

Stored size: 1.52 KB

Contents

module PatternPark
  
  class RemoteFileTarget < FileTarget
    attr_accessor :url,
                  :type,
                  :sprout,
                  :archive_type,
                  :archive_path,
                  :install_path,
                  :project_path,
                  :post_install,
                  :mount_path
    attr_reader   :downloaded_path,
                  :file_name,
                  :copy_path
    
    def resolve
      # already run once, don't run again in this session
      if(!file_name.nil?)
        return
      end
      if(url.nil? || url == '')
        @file_name = ''
      else
        @file_name = url.split('/').pop
        @downloaded_path = File.join(Sprout.cache, type, install_path, file_name)
      end
      if(archive_type == 'txt' || archive_type == 'exe')
        @install_path = File.join(Sprout.cache, type, install_path)
      else
        @install_path = File.join(Sprout.cache, type, install_path, archive_type)
      end
      @copy_path = File.join(install_path, archive_path)

      if(url.nil? || url == '')
        return
      end

      loader = RemoteFileLoader.new

      if(Sprout.update || !File.exists?(downloaded_path))
        # retrieve from the network
        loader.get_remote_file(url, downloaded_path)
      end
      
      if(Sprout.update || !File.exists?(install_path))
        # unpack into install path
        loader.unpack_downloaded_file(downloaded_path, install_path)
        if(post_install)
          eval(post_install)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sprout-0.5.19 lib/remote_file_target.rb