Sha256: 360c64c4aeaac87d8f304e427289cc4bfb19ffe981741ad5d77c7e070ea589f5

Contents?: true

Size: 1.72 KB

Versions: 1

Compression:

Stored size: 1.72 KB

Contents

require_relative('./environment.rb')
require_relative('./artifacts.rb')

class Publish < Array

  def initialize
    if(Environment.scm=='git')
	  artifacts=Artifacts.new
	  artifacts.each {|artifact|
	    dest_dir = Environment.dev_root + "/dep/" + Environment.relative_directory + '/' + Environment.branch 
	    dest = dest_dir + "/" + artifact
		dest_dir=File.dirname(dest)
		self.add "<%FileUtils.mkdir_p('#{dest_dir}')%>" if (!Dir.exists?(dest_dir))
		self.add "<%FileUtils.cp('#{artifact}','#{dest}')%>"
	  }
	end
  end

  def update
    puts "Publish.update"
    if(defined?(DEV_TASKS))
	  if(DEV_TASKS).has_key?(:publish_path)
	    if(DEV_TASKS[:publish_path].include?('svn://'))
		  latestRev=Environment.svn_latest_revision 
		  svn_publish_uri="#{DEV_TASKS[:publish_path]}/#{DEV_TASKS[:relative_directory]}-#{latestRev}"
		  local_dir="#{Environment.dev_root}/tmp/#{DEV_TASKS[:relative_directory]}@#{latestRev}"
		  FileUtils.mkdir_p(File.dirname(local_dir)) if(!File.exists?(File.dirname(local_dir)))
		  dep_dir="#{Environment.dev_root}/dep/#{DEV_TASKS[:relative_directory]}@#{latestRev}@"
		  puts "Publish.update, `svn info #{svn_publish_uri}`"
		  if(`svn info #{svn_publish_uri}`.include?('URL:'))
		    puts "#{svn_publish_uri} already exists."
		  else
		    add "svn mkdir #{svn_publish_uri} --parents"
			add "svn checkout #{svn_publish_uri} #{local_dir}@"
			DEV_TASKS[:artifacts].each{|a|
			  f="#{Environment.dev_root}/tmp/#{a}"
			  add "<%File.cp('#{dep_dir}/#{a}','#{local_dir}/#{a}'%>"
			  add "svn add #{local_dir}/#{a} --parents"
			}
			add "svn commit #{local_dir} -m\"publish\""
		  end
		end
	  end
	end
  end

  def add command
    self << command if(!include?(command))
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dev_tasks-0.0.125 lib/publish.rb