Sha256: 7f45b4142cdc086df9a229e05bee0a8a4d5f7b0819ddc68284ee31370fedf962

Contents?: true

Size: 1.74 KB

Versions: 1

Compression:

Stored size: 1.74 KB

Contents

require_relative('internet.rb')
class Publish < Array
	def update
		if(Internet.available?)
			Dir.glob('*.gemspec').each{|gemspec_file|
				add "gem push #{Gemspec.gemfile(gemspec_file)}" if !Gemspec.published? gemspec_file
			}

			if(defined?(PUBLISH_PATH))
				if(PUBLISH_PATH.include?('svn://') && File.exists?('.svn') && defined?(ARTIFACTS))

					latestRev=Publish.svn_latest_revision 
					svn_publish_uri="#{PUBLISH_PATH}/#{Publish.relative_directory}-#{latestRev}"
					local_dir="#{Command.dev_root}/tmp/#{Publish.relative_directory}@#{latestRev}"
					FileUtils.mkdir_p(File.dirname(local_dir)) if(!File.exists?(File.dirname(local_dir)))
					dep_dir="#{Command.dev_root}/dep/#{Publish.relative_directory}@#{latestRev}"
					svn_info=`svn info #{svn_publish_uri} 2>&1`
					if(svn_info.include?('URL:'))
						#puts "#{svn_publish_uri} already exists."
					else
						#Console.debug "adding publish commands.."
						add "svn mkdir #{svn_publish_uri} --parents -m\"publish\""
						add "svn checkout #{svn_publish_uri} #{local_dir}"
						add "<%Environment.copy_files(ARTIFACTS,'#{local_dir}')%>"
						add "<%Environment.svn_add_all('#{local_dir}')%>"
						add "svn commit #{local_dir}@ -m\"publish\""
						add "<%FileUtils.rm_r('#{local_dir}')%>"
					end
				end
			end
		end
	end

    def self.svn_latest_revision
	    if(Dir.exists?(".svn"))
		  `svn info`.scan(/Last Changed Rev: ([\d]+)/).each{|m|
		    return m.first.to_s
		  }
		end
		"0"
	 end
	def self.context
    	dir =Rake.application.original_dir.gsub(Command.dev_root + '/','')
		return dir.split('/').first
  	end

  	def self.relative_directory
    	Rake.application.original_dir.gsub(Command.dev_root + '/' + Publish.context + '/','')
  	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dev_commands-0.0.29 lib/publish.rb