Changeset 4204
- Timestamp:
- 04/09/06 22:14:08 (3 years ago)
- Files:
-
- branches/stable/actionmailer/Rakefile (modified) (1 diff)
- branches/stable/actionpack/Rakefile (modified) (1 diff)
- branches/stable/actionwebservice/Rakefile (modified) (1 diff)
- branches/stable/activerecord/Rakefile (modified) (1 diff)
- branches/stable/activesupport/Rakefile (modified) (1 diff)
- branches/stable/railties/Rakefile (modified) (1 diff)
- branches/stable/release.rb (modified) (2 diffs)
- trunk/actionmailer/Rakefile (modified) (1 diff)
- trunk/actionpack/Rakefile (modified) (1 diff)
- trunk/actionwebservice/Rakefile (modified) (1 diff)
- trunk/activerecord/Rakefile (modified) (1 diff)
- trunk/activesupport/Rakefile (modified) (1 diff)
- trunk/railties/Rakefile (modified) (1 diff)
- trunk/release.rb (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/stable/actionmailer/Rakefile
r4194 r4204 85 85 86 86 desc "Publish the release files to RubyForge." 87 task :release => [ :package] do88 files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }87 task :release => [ :package ] do 88 `rubyforge login` 89 89 90 if RUBY_FORGE_PROJECT then 91 require 'net/http' 92 require 'open-uri' 93 94 project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/" 95 project_data = open(project_uri) { |data| data.read } 96 group_id = project_data[/[?&]group_id=(\d+)/, 1] 97 raise "Couldn't get group id" unless group_id 98 99 # This echos password to shell which is a bit sucky 100 if ENV["RUBY_FORGE_PASSWORD"] 101 password = ENV["RUBY_FORGE_PASSWORD"] 102 else 103 print "#{RUBY_FORGE_USER}@rubyforge.org's password: " 104 password = STDIN.gets.chomp 105 end 106 107 login_response = Net::HTTP.start("rubyforge.org", 80) do |http| 108 data = [ 109 "login=1", 110 "form_loginname=#{RUBY_FORGE_USER}", 111 "form_pw=#{password}" 112 ].join("&") 113 http.post("/account/login.php", data) 114 end 115 116 cookie = login_response["set-cookie"] 117 raise "Login failed" unless cookie 118 headers = { "Cookie" => cookie } 119 120 release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}" 121 release_data = open(release_uri, headers) { |data| data.read } 122 package_id = release_data[/[?&]package_id=(\d+)/, 1] 123 raise "Couldn't get package id" unless package_id 124 125 first_file = true 126 release_id = "" 127 128 files.each do |filename| 129 basename = File.basename(filename) 130 file_ext = File.extname(filename) 131 file_data = File.open(filename, "rb") { |file| file.read } 132 133 puts "Releasing #{basename}..." 134 135 release_response = Net::HTTP.start("rubyforge.org", 80) do |http| 136 release_date = Time.now.strftime("%Y-%m-%d %H:%M") 137 type_map = { 138 ".zip" => "3000", 139 ".tgz" => "3110", 140 ".gz" => "3110", 141 ".gem" => "1400" 142 }; type_map.default = "9999" 143 type = type_map[file_ext] 144 boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor" 145 146 query_hash = if first_file then 147 { 148 "group_id" => group_id, 149 "package_id" => package_id, 150 "release_name" => RELEASE_NAME, 151 "release_date" => release_date, 152 "type_id" => type, 153 "processor_id" => "8000", # Any 154 "release_notes" => "", 155 "release_changes" => "", 156 "preformatted" => "1", 157 "submit" => "1" 158 } 159 else 160 { 161 "group_id" => group_id, 162 "release_id" => release_id, 163 "package_id" => package_id, 164 "step2" => "1", 165 "type_id" => type, 166 "processor_id" => "8000", # Any 167 "submit" => "Add This File" 168 } 169 end 170 171 query = "?" + query_hash.map do |(name, value)| 172 [name, URI.encode(value)].join("=") 173 end.join("&") 174 175 data = [ 176 "--" + boundary, 177 "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"", 178 "Content-Type: application/octet-stream", 179 "Content-Transfer-Encoding: binary", 180 "", file_data, "" 181 ].join("\x0D\x0A") 182 183 release_headers = headers.merge( 184 "Content-Type" => "multipart/form-data; boundary=#{boundary}" 185 ) 186 187 target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php" 188 http.post(target + query, data, release_headers) 189 end 190 191 if first_file then 192 release_id = release_response.body[/release_id=(\d+)/, 1] 193 raise("Couldn't get release id") unless release_id 194 end 195 196 first_file = false 197 end 90 for ext in %w( gem tgz zip ) 91 release_command = "rubyforge add_release #{PKG_NAME} #{PKG_NAME} 'REL #{PKG_VERSION}' pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" 92 puts release_command 93 system(release_command) 198 94 end 199 95 end branches/stable/actionpack/Rakefile
r4194 r4204 137 137 138 138 desc "Publish the release files to RubyForge." 139 task :release => [ :package] do140 files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }139 task :release => [ :package ] do 140 `rubyforge login` 141 141 142 if RUBY_FORGE_PROJECT then 143 require 'net/http' 144 require 'open-uri' 145 146 project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/" 147 project_data = open(project_uri) { |data| data.read } 148 group_id = project_data[/[?&]group_id=(\d+)/, 1] 149 raise "Couldn't get group id" unless group_id 150 151 # This echos password to shell which is a bit sucky 152 if ENV["RUBY_FORGE_PASSWORD"] 153 password = ENV["RUBY_FORGE_PASSWORD"] 154 else 155 print "#{RUBY_FORGE_USER}@rubyforge.org's password: " 156 password = STDIN.gets.chomp 157 end 158 159 login_response = Net::HTTP.start("rubyforge.org", 80) do |http| 160 data = [ 161 "login=1", 162 "form_loginname=#{RUBY_FORGE_USER}", 163 "form_pw=#{password}" 164 ].join("&") 165 http.post("/account/login.php", data) 166 end 167 168 cookie = login_response["set-cookie"] 169 raise "Login failed" unless cookie 170 headers = { "Cookie" => cookie } 171 172 release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}" 173 release_data = open(release_uri, headers) { |data| data.read } 174 package_id = release_data[/[?&]package_id=(\d+)/, 1] 175 raise "Couldn't get package id" unless package_id 176 177 first_file = true 178 release_id = "" 179 180 files.each do |filename| 181 basename = File.basename(filename) 182 file_ext = File.extname(filename) 183 file_data = File.open(filename, "rb") { |file| file.read } 184 185 puts "Releasing #{basename}..." 186 187 release_response = Net::HTTP.start("rubyforge.org", 80) do |http| 188 release_date = Time.now.strftime("%Y-%m-%d %H:%M") 189 type_map = { 190 ".zip" => "3000", 191 ".tgz" => "3110", 192 ".gz" => "3110", 193 ".gem" => "1400" 194 }; type_map.default = "9999" 195 type = type_map[file_ext] 196 boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor" 197 198 query_hash = if first_file then 199 { 200 "group_id" => group_id, 201 "package_id" => package_id, 202 "release_name" => RELEASE_NAME, 203 "release_date" => release_date, 204 "type_id" => type, 205 "processor_id" => "8000", # Any 206 "release_notes" => "", 207 "release_changes" => "", 208 "preformatted" => "1", 209 "submit" => "1" 210 } 211 else 212 { 213 "group_id" => group_id, 214 "release_id" => release_id, 215 "package_id" => package_id, 216 "step2" => "1", 217 "type_id" => type, 218 "processor_id" => "8000", # Any 219 "submit" => "Add This File" 220 } 221 end 222 223 query = "?" + query_hash.map do |(name, value)| 224 [name, URI.encode(value)].join("=") 225 end.join("&") 226 227 data = [ 228 "--" + boundary, 229 "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"", 230 "Content-Type: application/octet-stream", 231 "Content-Transfer-Encoding: binary", 232 "", file_data, "" 233 ].join("\x0D\x0A") 234 235 release_headers = headers.merge( 236 "Content-Type" => "multipart/form-data; boundary=#{boundary}" 237 ) 238 239 target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php" 240 http.post(target + query, data, release_headers) 241 end 242 243 if first_file then 244 release_id = release_response.body[/release_id=(\d+)/, 1] 245 raise("Couldn't get release id") unless release_id 246 end 247 248 first_file = false 249 end 142 for ext in %w( gem tgz zip ) 143 release_command = "rubyforge add_release #{PKG_NAME} #{PKG_NAME} 'REL #{PKG_VERSION}' pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" 144 puts release_command 145 system(release_command) 250 146 end 251 147 end branches/stable/actionwebservice/Rakefile
r4203 r4204 161 161 162 162 desc "Publish the release files to RubyForge." 163 task :release => [ :package] do164 files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }163 task :release => [ :package ] do 164 `rubyforge login` 165 165 166 if RUBY_FORGE_PROJECT then 167 require 'net/http' 168 require 'open-uri' 169 170 project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/" 171 project_data = open(project_uri) { |data| data.read } 172 group_id = project_data[/[?&]group_id=(\d+)/, 1] 173 raise "Couldn't get group id" unless group_id 174 175 # This echos password to shell which is a bit sucky 176 if ENV["RUBY_FORGE_PASSWORD"] 177 password = ENV["RUBY_FORGE_PASSWORD"] 178 else 179 print "#{RUBY_FORGE_USER}@rubyforge.org's password: " 180 password = STDIN.gets.chomp 181 end 182 183 login_response = Net::HTTP.start("rubyforge.org", 80) do |http| 184 data = [ 185 "login=1", 186 "form_loginname=#{RUBY_FORGE_USER}", 187 "form_pw=#{password}" 188 ].join("&") 189 http.post("/account/login.php", data) 190 end 191 192 cookie = login_response["set-cookie"] 193 raise "Login failed" unless cookie 194 headers = { "Cookie" => cookie } 195 196 release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}" 197 release_data = open(release_uri, headers) { |data| data.read } 198 package_id = release_data[/[?&]package_id=(\d+)/, 1] 199 raise "Couldn't get package id" unless package_id 200 201 first_file = true 202 release_id = "" 203 204 files.each do |filename| 205 basename = File.basename(filename) 206 file_ext = File.extname(filename) 207 file_data = File.open(filename, "rb") { |file| file.read } 208 209 puts "Releasing #{basename}..." 210 211 release_response = Net::HTTP.start("rubyforge.org", 80) do |http| 212 release_date = Time.now.strftime("%Y-%m-%d %H:%M") 213 type_map = { 214 ".zip" => "3000", 215 ".tgz" => "3110", 216 ".gz" => "3110", 217 ".gem" => "1400" 218 }; type_map.default = "9999" 219 type = type_map[file_ext] 220 boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor" 221 222 query_hash = if first_file then 223 { 224 "group_id" => group_id, 225 "package_id" => package_id, 226 "release_name" => RELEASE_NAME, 227 "release_date" => release_date, 228 "type_id" => type, 229 "processor_id" => "8000", # Any 230 "release_notes" => "", 231 "release_changes" => "", 232 "preformatted" => "1", 233 "submit" => "1" 234 } 235 else 236 { 237 "group_id" => group_id, 238 "release_id" => release_id, 239 "package_id" => package_id, 240 "step2" => "1", 241 "type_id" => type, 242 "processor_id" => "8000", # Any 243 "submit" => "Add This File" 244 } 245 end 246 247 query = "?" + query_hash.map do |(name, value)| 248 [name, URI.encode(value)].join("=") 249 end.join("&") 250 251 data = [ 252 "--" + boundary, 253 "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"", 254 "Content-Type: application/octet-stream", 255 "Content-Transfer-Encoding: binary", 256 "", file_data, "" 257 ].join("\x0D\x0A") 258 259 release_headers = headers.merge( 260 "Content-Type" => "multipart/form-data; boundary=#{boundary}" 261 ) 262 263 target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php" 264 http.post(target + query, data, release_headers) 265 end 266 267 if first_file then 268 release_id = release_response.body[/release_id=(\d+)/, 1] 269 raise("Couldn't get release id") unless release_id 270 end 271 272 first_file = false 273 end 166 for ext in %w( gem tgz zip ) 167 release_command = "rubyforge add_release #{PKG_NAME} #{PKG_NAME} 'REL #{PKG_VERSION}' pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" 168 puts release_command 169 system(release_command) 274 170 end 275 171 end branches/stable/activerecord/Rakefile
r4194 r4204 171 171 172 172 desc "Publish the release files to RubyForge." 173 task :release => [ :package] do174 files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }173 task :release => [ :package ] do 174 `rubyforge login` 175 175 176 if RUBY_FORGE_PROJECT then 177 require 'net/http' 178 require 'open-uri' 179 180 project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/" 181 project_data = open(project_uri) { |data| data.read } 182 group_id = project_data[/[?&]group_id=(\d+)/, 1] 183 raise "Couldn't get group id" unless group_id 184 185 # This echos password to shell which is a bit sucky 186 if ENV["RUBY_FORGE_PASSWORD"] 187 password = ENV["RUBY_FORGE_PASSWORD"] 188 else 189 print "#{RUBY_FORGE_USER}@rubyforge.org's password: " 190 password = STDIN.gets.chomp 191 end 192 193 login_response = Net::HTTP.start("rubyforge.org", 80) do |http| 194 data = [ 195 "login=1", 196 "form_loginname=#{RUBY_FORGE_USER}", 197 "form_pw=#{password}" 198 ].join("&") 199 http.post("/account/login.php", data) 200 end 201 202 cookie = login_response["set-cookie"] 203 raise "Login failed" unless cookie 204 headers = { "Cookie" => cookie } 205 206 release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}" 207 release_data = open(release_uri, headers) { |data| data.read } 208 package_id = release_data[/[?&]package_id=(\d+)/, 1] 209 raise "Couldn't get package id" unless package_id 210 211 first_file = true 212 release_id = "" 213 214 files.each do |filename| 215 basename = File.basename(filename) 216 file_ext = File.extname(filename) 217 file_data = File.open(filename, "rb") { |file| file.read } 218 219 puts "Releasing #{basename}..." 220 221 release_response = Net::HTTP.start("rubyforge.org", 80) do |http| 222 release_date = Time.now.strftime("%Y-%m-%d %H:%M") 223 type_map = { 224 ".zip" => "3000", 225 ".tgz" => "3110", 226 ".gz" => "3110", 227 ".gem" => "1400" 228 }; type_map.default = "9999" 229 type = type_map[file_ext] 230 boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor" 231 232 query_hash = if first_file then 233 { 234 "group_id" => group_id, 235 "package_id" => package_id, 236 "release_name" => RELEASE_NAME, 237 "release_date" => release_date, 238 "type_id" => type, 239 "processor_id" => "8000", # Any 240 "release_notes" => "", 241 "release_changes" => "", 242 "preformatted" => "1", 243 "submit" => "1" 244 } 245 else 246 { 247 "group_id" => group_id, 248 "release_id" => release_id, 249 "package_id" => package_id, 250 "step2" => "1", 251 "type_id" => type, 252 "processor_id" => "8000", # Any 253 "submit" => "Add This File" 254 } 255 end 256 257 query = "?" + query_hash.map do |(name, value)| 258 [name, URI.encode(value)].join("=") 259 end.join("&") 260 261 data = [ 262 "--" + boundary, 263 "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"", 264 "Content-Type: application/octet-stream", 265 "Content-Transfer-Encoding: binary", 266 "", file_data, "" 267 ].join("\x0D\x0A") 268 269 release_headers = headers.merge( 270 "Content-Type" => "multipart/form-data; boundary=#{boundary}" 271 ) 272 273 target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php" 274 http.post(target + query, data, release_headers) 275 end 276 277 if first_file then 278 release_id = release_response.body[/release_id=(\d+)/, 1] 279 raise("Couldn't get release id") unless release_id 280 end 281 282 first_file = false 283 end 176 for ext in %w( gem tgz zip ) 177 release_command = "rubyforge add_release #{PKG_NAME} #{PKG_NAME} 'REL #{PKG_VERSION}' pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" 178 puts release_command 179 system(release_command) 284 180 end 285 181 end branches/stable/activesupport/Rakefile
r4081 r4204 72 72 73 73 desc "Publish the release files to RubyForge." 74 task :release => [ :package] do75 files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }74 task :release => [ :package ] do 75 `rubyforge login` 76 76 77 if RUBY_FORGE_PROJECT then 78 require 'net/http' 79 require 'open-uri' 80 81 project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/" 82 project_data = open(project_uri) { |data| data.read } 83 group_id = project_data[/[?&]group_id=(\d+)/, 1] 84 raise "Couldn't get group id" unless group_id 85 86 # This echos password to shell which is a bit sucky 87 if ENV["RUBY_FORGE_PASSWORD"] 88 password = ENV["RUBY_FORGE_PASSWORD"] 89 else 90 print "#{RUBY_FORGE_USER}@rubyforge.org's password: " 91 password = STDIN.gets.chomp 92 end 93 94 login_response = Net::HTTP.start("rubyforge.org", 80) do |http| 95 data = [ 96 "login=1", 97 "form_loginname=#{RUBY_FORGE_USER}", 98 "form_pw=#{password}" 99 ].join("&") 100 http.post("/account/login.php", data) 101 end 102 103 cookie = login_response["set-cookie"] 104 raise "Login failed" unless cookie 105 headers = { "Cookie" => cookie } 106 107 release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}" 108 release_data = open(release_uri, headers) { |data| data.read } 109 package_id = release_data[/[?&]package_id=(\d+)/, 1] 110 raise "Couldn't get package id" unless package_id 111 112 first_file = true 113 release_id = "" 114 115 files.each do |filename| 116 basename = File.basename(filename) 117 file_ext = File.extname(filename) 118 file_data = File.open(filename, "rb") { |file| file.read } 119 120 puts "Releasing #{basename}..." 121 122 release_response = Net::HTTP.start("rubyforge.org", 80) do |http| 123 release_date = Time.now.strftime("%Y-%m-%d %H:%M") 124 type_map = { 125 ".zip" => "3000", 126 ".tgz" => "3110", 127 ".gz" => "3110", 128 ".gem" => "1400" 129 }; type_map.default = "9999" 130 type = type_map[file_ext] 131 boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor" 132 133 query_hash = if first_file then 134 { 135 "group_id" => group_id, 136 "package_id" => package_id, 137 "release_name" => RELEASE_NAME, 138 "release_date" => release_date, 139 "type_id" => type, 140 "processor_id" => "8000", # Any 141 "release_notes" => "", 142 "release_changes" => "", 143 "preformatted" => "1", 144 "submit" => "1" 145 } 146 else 147 { 148 "group_id" => group_id, 149 "release_id" => release_id, 150 "package_id" => package_id, 151 "step2" => "1", 152 "type_id" => type, 153 "processor_id" => "8000", # Any 154 "submit" => "Add This File" 155 } 156 end 157 158 query = "?" + query_hash.map do |(name, value)| 159 [name, URI.encode(value)].join("=") 160 end.join("&") 161 162 data = [ 163 "--" + boundary, 164 "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"", 165 "Content-Type: application/octet-stream", 166 "Content-Transfer-Encoding: binary", 167 "", file_data, "" 168 ].join("\x0D\x0A") 169 170 release_headers = headers.merge( 171 "Content-Type" => "multipart/form-data; boundary=#{boundary}" 172 ) 173 174 target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php" 175 http.post(target + query, data, release_headers) 176 end 177 178 if first_file then 179 release_id = release_response.body[/release_id=(\d+)/, 1] 180 raise("Couldn't get release id") unless release_id 181 end 182 183 first_file = false 184 end 77 for ext in %w( gem tgz zip ) 78 release_command = "rubyforge add_release #{PKG_NAME} #{PKG_NAME} 'REL #{PKG_VERSION}' pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" 79 puts release_command 80 system(release_command) 185 81 end 186 82 end branches/stable/railties/Rakefile
r4203 r4204 313 313 314 314 desc "Publish the release files to RubyForge." 315 task :release => [:gem] do 316 files = ["gem"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" } 317 318 if RUBY_FORGE_PROJECT then 319 require 'net/http' 320 require 'open-uri' 321 322 project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/" 323 project_data = open(project_uri) { |data| data.read } 324 group_id = project_data[/[?&]group_id=(\d+)/, 1] 325 raise "Couldn't get group id" unless group_id 326 327 # This echos password to shell which is a bit sucky 328 if ENV["RUBY_FORGE_PASSWORD"] 329 password = ENV["RUBY_FORGE_PASSWORD"] 330 else 331 print "#{RUBY_FORGE_USER}@rubyforge.org's password: " 332 password = STDIN.gets.chomp 333 end 334 335 login_response = Net::HTTP.start("rubyforge.org", 80) do |http| 336 data = [ 337 "login=1", 338 "form_loginname=#{RUBY_FORGE_USER}", 339 "form_pw=#{password}" 340 ].join("&") 341 http.post("/account/login.php", data) 342 end 343 344 cookie = login_response["set-cookie"] 345 raise "Login failed" unless cookie 346 headers = { "Cookie" => cookie } 347 348 release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}" 349 release_data = open(release_uri, headers) { |data| data.read } 350 package_id = release_data[/[?&]package_id=(\d+)/, 1] 351 raise "Couldn't get package id" unless package_id 352 353 first_file = true 354 release_id = "" 355 356 files.each do |filename| 357 basename = File.basename(filename) 358 file_ext = File.extname(filename) 359 file_data = File.open(filename, "rb") { |file| file.read } 360 361 puts "Releasing #{basename}..." 362 363 release_response = Net::HTTP.start("rubyforge.org", 80) do |http| 364 release_date = Time.now.strftime("%Y-%m-%d %H:%M") 365 type_map = { 366 ".zip" => "3000", 367 ".tgz" => "3110", 368 ".gz" => "3110", 369 ".gem" => "1400" 370 }; type_map.default = "9999" 371 type = type_map[file_ext] 372 boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor" 373 374 query_hash = if first_file then 375 { 376 "group_id" => group_id, 377 "package_id" => package_id, 378 "release_name" => RELEASE_NAME, 379 "release_date" => release_date, 380 "type_id" => type, 381 "processor_id" => "8000", # Any 382 "release_notes" => "", 383 "release_changes" => "", 384 "preformatted" => "1", 385 "submit" => "1" 386 } 387 else 388 { 389 "group_id" => group_id, 390 "release_id" => release_id, 391 "package_id" => package_id, 392 "step2" => "1", 393 "type_id" => type, 394 "processor_id" => "8000", # Any 395 "submit" => "Add This File" 396 } 397 end 398 399 query = "?" + query_hash.map do |(name, value)| 400 [name, URI.encode(value)].join("=") 401 end.join("&") 402 403 data = [ 404 "--" + boundary, 405 "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"", 406 "Content-Type: application/octet-stream", 407 "Content-Transfer-Encoding: binary", 408 "", file_data, "" 409 ].join("\x0D\x0A") 410 411 release_headers = headers.merge( 412 "Content-Type" => "multipart/form-data; boundary=#{boundary}" 413 ) 414 415 target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php" 416 http.post(target + query, data, release_headers) 417 end 418 419 if first_file then 420 release_id = release_response.body[/release_id=(\d+)/, 1] 421 raise("Couldn't get release id") unless release_id 422 end 423 424 first_file = false 425 end 426 end 427 end 315 task :release => [ :gem ] do 316 `rubyforge login` 317 release_command = "rubyforge add_release #{PKG_NAME} #{PKG_NAME} 'REL #{PKG_VERSION}' pkg/#{PKG_NAME}-#{PKG_VERSION}.gem" 318 puts release_command 319 system(release_command) 320 end branches/stable/release.rb
r4092 r4204 1 1 #!/usr/local/bin/ruby 2 2 3 VERSION = ARGV.first 3 4 PACKAGES = %w( activesupport activerecord actionpack actionmailer actionwebservice ) 4 5 unless ruby_forge_password = ARGV.first6 print "rubyforge.org's password: "7 ruby_forge_password = STDIN.gets.chomp8 end9 5 10 6 # Checkout source … … 15 11 16 12 # Upload documentation 17 `cd release/rails/doc/api && scp -r * davidhh@wrath.rubyonrails.com:public_html/rails` 18 PACKAGES.each do |p| 19 `cd release/#{p} && echo "Publishing documentation for #{p}" && rake template=jamis pdoc` 20 end 13 `cd release/rails/doc/api && scp -r * davidhh@wrath.rubyonrails.com:public_html/api` 21 14 22 15 # Upload packages 23 16 (PACKAGES + %w(railties)).each do |p| 24 `cd release/#{p} && echo "Releasing #{p}" && RUBY_FORGE_PASSWORD=#{ruby_forge_password}rake release`17 `cd release/#{p} && echo "Releasing #{p}" && rake release` 25 18 end 26 19 27 20 # Upload rails tgz/zip 21 `rubyforge add_release rails rails 'REL #{VERSION}' rails-#{VERSION}.tgz` 22 `rubyforge add_release rails rails 'REL #{VERSION}' rails-#{VERSION}.zip` 28 23 29 24 # Create SVN tag 25 puts "Remeber to create SVN tag" trunk/actionmailer/Rakefile
r4194 r4204 85 85 86 86 desc "Publish the release files to RubyForge." 87 task :release => [ :package] do88 files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }87 task :release => [ :package ] do 88 `rubyforge login` 89 89 90 if RUBY_FORGE_PROJECT then 91 require 'net/http' 92 require 'open-uri' 93 94 project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/" 95 project_data = open(project_uri) { |data| data.read } 96 group_id = project_data[/[?&]group_id=(\d+)/, 1] 97 raise "Couldn't get group id" unless group_id 98 99 # This echos password to shell which is a bit sucky 100 if ENV["RUBY_FORGE_PASSWORD"] 101 password = ENV["RUBY_FORGE_PASSWORD"] 102 else 103 print "#{RUBY_FORGE_USER}@rubyforge.org's password: " 104 password = STDIN.gets.chomp 105 end 106 107 login_response = Net::HTTP.start("rubyforge.org", 80) do |http| 108 data = [ 109 "login=1", 110 "form_loginname=#{RUBY_FORGE_USER}", 111 "form_pw=#{password}" 112 ].join("&") 113 http.post("/account/login.php", data) 114 end 115 116 cookie = login_response["set-cookie"] 117 raise "Login failed" unless cookie 118 headers = { "Cookie" => cookie } 119 120 release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}" 121 release_data = open(release_uri, headers) { |data| data.read } 122 package_id = release_data[/[?&]package_id=(\d+)/, 1] 123 raise "Couldn't get package id" unless package_id 124 125 first_file = true 126 release_id = "" 127 128 files.each do |filename| 129 basename = File.basename(filename) 130 file_ext = File.extname(filename) 131 file_data = File.open(filename, "rb") { |file| file.read } 132 133 puts "Releasing #{basename}..." 134 135 release_response = Net::HTTP.start("rubyforge.org", 80) do |http| 136 release_date = Time.now.strftime("%Y-%m-%d %H:%M") 137 type_map = { 138 ".zip" => "3000", 139 ".tgz" => "3110", 140 ".gz" => "3110", 141 ".gem" => "1400" 142 }; type_map.default = "9999" 143 type = type_map[file_ext] 144 boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor" 145 146 query_hash = if first_file then 147 { 148 "group_id" => group_id, 149 "package_id" => package_id, 150 "release_name" => RELEASE_NAME, 151 "release_date" => release_date, 152 "type_id" => type, 153 "processor_id" => "8000", # Any 154 "release_notes" => "", 155 "release_changes" => "", 156 "preformatted" => "1", 157 "submit" => "1" 158 } 159 else 160 { 161 "group_id" => group_id, 162 "release_id" => release_id, 163 "package_id" => package_id, 164 "step2" => "1", 165 "type_id" => type, 166 "processor_id" => "8000", # Any 167 "submit" => "Add This File" 168 } 169 end 170 171 query = "?" + query_hash.map do |(name, value)| 172 [name, URI.encode(value)].join("=") 173 end.join("&") 174 175 data = [ 176 "--" + boundary, 177 "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"", 178 "Content-Type: application/octet-stream", 179 "Content-Transfer-Encoding: binary", 180 "", file_data, "" 181 ].join("\x0D\x0A") 182 183 release_headers = headers.merge( 184 "Content-Type" => "multipart/form-data; boundary=#{boundary}" 185 ) 186 187 target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php" 188 http.post(target + query, data, release_headers) 189 end 190 191 if first_file then 192 release_id = release_response.body[/release_id=(\d+)/, 1] 193 raise("Couldn't get release id") unless release_id 194 end 195 196 first_file = false 197 end 90 for ext in %w( gem tgz zip ) 91 release_command = "rubyforge add_release #{PKG_NAME} #{PKG_NAME} 'REL #{PKG_VERSION}' pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" 92 puts release_command 93 system(release_command) 198 94 end 199 95 end trunk/actionpack/Rakefile
r4194 r4204 137 137 138 138 desc "Publish the release files to RubyForge." 139 task :release => [ :package] do140 files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }139 task :release => [ :package ] do 140 `rubyforge login` 141 141 142 if RUBY_FORGE_PROJECT then 143 require 'net/http' 144 require 'open-uri' 145 146 project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/" 147 project_data = open(project_uri) { |data| data.read } 148 group_id = project_data[/[?&]group_id=(\d+)/, 1] 149 raise "Couldn't get group id" unless group_id 150 151 # This echos password to shell which is a bit sucky 152 if ENV["RUBY_FORGE_PASSWORD"] 153 password = ENV["RUBY_FORGE_PASSWORD"] 154 else 155 print "#{RUBY_FORGE_USER}@rubyforge.org's password: " 156 password = STDIN.gets.chomp 157 end 158 159 login_response = Net::HTTP.start("rubyforge.org", 80) do |http| 160 data = [ 161 "login=1", 162 "form_loginname=#{RUBY_FORGE_USER}", 163 "form_pw=#{password}" 164 ].join("&") 165 http.post("/account/login.php", data) 166 end 167 168 cookie = login_response["set-cookie"] 169 raise "Login failed" unless cookie 170 headers = { "Cookie" => cookie } 171 172 release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}" 173 release_data = open(release_uri, headers) { |data| data.read } 174 package_id = release_data[/[?&]package_id=(\d+)/, 1] 175 raise "Couldn't get package id" unless package_id 176 177 first_file = true 178 release_id = "" 179 180 files.each do |filename| 181 basename = File.basename(filename) 182 file_ext = File.extname(filename) 183 file_data = File.open(filename, "rb") { |file| file.read } 184 185 puts "Releasing #{basename}..." 186 187 release_response = Net::HTTP.start("rubyforge.org", 80) do |http| 188 release_date = Time.now.strftime("%Y-%m-%d %H:%M") 189 type_map = { 190 ".zip" => "3000", 191 ".tgz" => "3110", 192 ".gz" => "3110", 193 ".gem" => "1400" 194 }; type_map.default = "9999" 195 type = type_map[file_ext] 196 boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor" 197 198 query_hash = if first_file then 199 { 200 "group_id" => group_id, 201 "package_id" => package_id, 202 "release_name" => RELEASE_NAME, 203 "release_date" => release_date, 204 "type_id" => type, 205 "processor_id" => "8000", # Any 206 "release_notes" => "", 207 "release_changes" => "", 208 "preformatted" => "1", 209 "submit" => "1" 210 } 211 else 212 { 213 "group_id" => group_id, 214 "release_id" => release_id, 215 "package_id" => package_id, 216 "step2" => "1", 217 "type_id" => type, 218 "processor_id" => "8000", # Any 219 "submit" => "Add This File" 220 } 221 end 222 223 query = "?" + query_hash.map do |(name, value)| 224 [name, URI.encode(value)].join("=") 225 end.join("&") 226 227 data = [ 228 "--" + boundary, 229 "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"", 230 "Content-Type: application/octet-stream", 231 "Content-Transfer-Encoding: binary", 232 "", file_data, "" 233 ].join("\x0D\x0A") 234 235 release_headers = headers.merge( 236 "Content-Type" => "multipart/form-data; boundary=#{boundary}" 237 ) 238 239 target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php" 240 http.post(target + query, data, release_headers) 241 end 242 243 if first_file then 244 release_id = release_response.body[/release_id=(\d+)/, 1] 245 raise("Couldn't get release id") unless release_id 246 end 247 248 first_file = false 249 end 142 for ext in %w( gem tgz zip ) 143 release_command = "rubyforge add_release #{PKG_NAME} #{PKG_NAME} 'REL #{PKG_VERSION}' pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" 144 puts release_command 145 system(release_command) 250 146 end 251 147 end trunk/actionwebservice/Rakefile
r4203 r4204 161 161 162 162 desc "Publish the release files to RubyForge." 163 task :release => [ :package] do164 files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }163 task :release => [ :package ] do 164 `rubyforge login` 165 165 166 if RUBY_FORGE_PROJECT then 167 require 'net/http' 168 require 'open-uri' 169 170 project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/" 171 project_data = open(project_uri) { |data| data.read } 172 group_id = project_data[/[?&]group_id=(\d+)/, 1] 173 raise "Couldn't get group id" unless group_id 174 175 # This echos password to shell which is a bit sucky 176 if ENV["RUBY_FORGE_PASSWORD"] 177 password = ENV["RUBY_FORGE_PASSWORD"] 178 else 179 print "#{RUBY_FORGE_USER}@rubyforge.org's password: " 180 password = STDIN.gets.chomp 181 end 182 183 login_response = Net::HTTP.start("rubyforge.org", 80) do |http| 184 data = [ 185 "login=1", 186 "form_loginname=#{RUBY_FORGE_USER}", 187 "form_pw=#{password}" 188 ].join("&") 189 http.post("/account/login.php", data) 190 end 191 192 cookie = login_response["set-cookie"] 193 raise "Login failed" unless cookie 194 headers = { "Cookie" => cookie }&nbs