reap 9.2.0 → 9.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/MANIFEST CHANGED
@@ -54,9 +54,10 @@ lib/reap/manager/scaffold.rb
54
54
  lib/reap/manager/clean.rb
55
55
  lib/reap/manager/publish.rb
56
56
  lib/reap/manager/spec.rb
57
- lib/reap/manager/pack.rb
57
+ lib/reap/manager/stamp.rb
58
58
  lib/reap/manager/svn.rb
59
59
  lib/reap/manager/scm.rb
60
+ lib/reap/manager/package.rb
60
61
  lib/reap/manager/check.rb
61
62
  lib/reap/manager/announce.rb
62
63
  lib/reap/utilities
@@ -113,6 +114,7 @@ bin/reap-stats
113
114
  bin/reap-package
114
115
  bin/reap-scm-tag
115
116
  bin/reap-publish
117
+ bin/reap-rollout
116
118
  bin/reap-spec
117
119
  bin/reap-prepare
118
120
  bin/reap-test-load
data/NOTES CHANGED
@@ -10,3 +10,7 @@ standard conventions, and can no longer be changed. In
10
10
  this case the advantage of convention outway the uses
11
11
  of configuration.
12
12
 
13
+ What remains to be done now is mostly cleanup and fine
14
+ tuning, such as better command line output and additional
15
+ documentation.
16
+
data/bin/reap-rollout ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'reap/application'
4
+
5
+ app = Reap::Application.new
6
+
7
+ app.rollout
@@ -1,77 +1,77 @@
1
- ---
2
- announce:
3
- template: '{ANNOUNCE,README}{,.txt}' # Announcement template file glob.
4
- mail_to: rubytalk@ruby-lange.org # Email address(es) to send announcemnt.
5
- mail_from: #{metadata.email} # Message FROM address.
6
- subject: "ANN: %s %s" # Subject of email message. Sprintf'd against name and version.
7
- account: #{metadata.email} # Email account name [email].
8
- domain: rubyforge.org # Your domain. (Not sure why one needs this for an email.)
9
- server: smtp.goolge.com # Email server to route message.
10
- port: 25 # Email server's port, if not secure.
11
- port_secure: 465 # Email server's port, if secure.
12
- secure: false # Uses TLS security, true or false?
13
- login: plain # Login type: plain, cram_md5 or login.
14
- cutoff: 30 # How many lines of changelog to provide.
15
- check:
16
- loadpath: #{metadata.loadpath}
17
- exclude: []
18
- check-syntax:
19
- loadpath: #{metadata.loadpath}
20
- exclude: [ext]
21
- check-load:
22
- loadpath: #{metadata.loadpath}
23
- exclude: []
24
- clean:
25
- remove: [**/*~, **/*.bak]
26
- log:
27
- policy: [cap, ext] # How to save log files. (cap=capitialize, up=uppercase, low=lowercase, ext=extension)
28
- output: log
29
- log-notes:
30
- loadpath: #{metadata.loadpath} # Files to search for notes.
31
- labels: [TODO, FIXME, OPTIMIZE]
32
- make:
33
- extensions: #{metadata.extensions} # Defaults to ext/**/extconf.rb (NOT USED YET)
34
- package:
35
- formats: [zip, gem]
36
- publish:
37
- source: doc
38
- webdir: ~
39
- username: #{ENV['RUBYFORGE_USERNAME']}
40
- protect: [usage, statcvs, statsvn, robot.txt, wiki] # Used as defaults for creating .rsync-filter (after that edit .rsync-filter)
41
- exclude: [.svn, scrap] # Used as defaults for creating .rsync-filter (after that edit .rsync-filter)
42
- rdoc:
43
- template: html
44
- output: doc/rdoc
45
- main: 'README{,.txt}'
46
- inline: true
47
- merge: true
48
- exclude: []
49
- include: ['lib', '[A-Z]*']
50
- adfile: doc/ads/rdoc.html
51
- targets: ~
52
- ri:
53
- output: ri
54
- exclude: []
55
- include: #{metadata.loadpath}
56
- release:
57
- username: #{ENV['RUBYFORGE_USERNAME']}
58
- changelog: 'CHANGES{,.txt}'
59
- notelog: 'NOTES{,.txt}'
60
- spec:
61
- specs: [spec/**/*_spec.rb, spec/**/spec_*.rb]
62
- loadpath: #{metadata.loadpath}
63
- require: []
64
- warning: false
65
- command: spec
66
- live: false
67
- stats:
68
- loadpath: #{metadata.loadpath}
69
- exclude: ['ext']
70
- test:
71
- tests: test/**/{test,tc}_*.rb
72
- loadpath: #{metadata.loadpath}
73
- require: []
74
- exclude: ext
75
- command: testrb
76
- live: false
1
+
2
+ announce:
3
+ template: '{ANNOUNCE,README}{,.txt}' # Announcement template file glob.
4
+ mail_to: rubytalk@ruby-lange.org # Email address(es) to send announcemnt.
5
+ mail_from: #{metadata.email} # Message FROM address.
6
+ subject: "%s v%s released" # Subject of email message. Sprintf'd against name and version.
7
+ account: #{metadata.email} # Email account name [email].
8
+ domain: rubyforge.org # Your domain. (Not sure why one needs this for an email.)
9
+ server: smtp.goolge.com # Email server to route message.
10
+ port: 25 # Email server's port, if not secure.
11
+ port_secure: 465 # Email server's port, if secure.
12
+ secure: false # Uses TLS security, true or false?
13
+ login: plain # Login type: plain, cram_md5 or login.
14
+ cutoff: 30 # How many lines of changelog to provide.
15
+ check:
16
+ loadpath: #{metadata.loadpath}
17
+ exclude: []
18
+ check-syntax:
19
+ loadpath: #{metadata.loadpath}
20
+ exclude: [ext]
21
+ check-load:
22
+ loadpath: #{metadata.loadpath}
23
+ exclude: []
24
+ clean:
25
+ remove: [**/*~, **/*.bak]
26
+ log:
27
+ policy: [cap, ext] # How to save log files. (cap=capitialize, up=uppercase, low=lowercase, ext=extension)
28
+ output: log
29
+ log-notes:
30
+ loadpath: #{metadata.loadpath} # Files to search for notes.
31
+ labels: [TODO, FIXME, OPTIMIZE]
32
+ make:
33
+ extensions: #{metadata.extensions} # Defaults to ext/**/extconf.rb (NOT USED YET)
34
+ package:
35
+ formats: [zip, gem]
36
+ publish:
37
+ source: doc
38
+ webdir: ~
39
+ username: #{ENV['RUBYFORGE_USERNAME']}
40
+ protect: [usage, statcvs, statsvn, robot.txt, wiki] # Used as defaults for creating .rsync-filter (after that edit .rsync-filter)
41
+ exclude: [.svn, scrap] # Used as defaults for creating .rsync-filter (after that edit .rsync-filter)
42
+ rdoc:
43
+ template: html
44
+ output: doc/rdoc
45
+ main: 'README{,.txt}'
46
+ inline: true
47
+ merge: true
48
+ exclude: []
49
+ include: ['lib', '[A-Z]*']
50
+ adfile: doc/ads/rdoc.html
51
+ targets: ~
52
+ ri:
53
+ output: ri
54
+ exclude: []
55
+ include: #{metadata.loadpath}
56
+ release:
57
+ username: #{ENV['RUBYFORGE_USERNAME']}
58
+ changelog: 'CHANGES{,.txt}'
59
+ notelog: 'NOTES{,.txt}'
60
+ spec:
61
+ specs: [spec/**/*_spec.rb, spec/**/spec_*.rb]
62
+ loadpath: #{metadata.loadpath}
63
+ require: []
64
+ warning: false
65
+ command: spec
66
+ live: false
67
+ stats:
68
+ loadpath: #{metadata.loadpath}
69
+ exclude: ['ext']
70
+ test:
71
+ tests: test/**/{test,tc}_*.rb
72
+ loadpath: #{metadata.loadpath}
73
+ require: []
74
+ exclude: ext
75
+ command: testrb
76
+ live: false
77
77
 
data/lib/reap/manager.rb CHANGED
@@ -34,7 +34,7 @@ require "reap/manager/gem.rb"
34
34
  require "reap/manager/html.rb"
35
35
  require "reap/manager/log.rb"
36
36
  require "reap/manager/make.rb"
37
- require "reap/manager/pack.rb"
37
+ require "reap/manager/package.rb"
38
38
  require "reap/manager/publish.rb"
39
39
  require "reap/manager/rdoc.rb"
40
40
  require "reap/manager/release.rb"
@@ -42,6 +42,7 @@ require "reap/manager/scaffold.rb"
42
42
  require "reap/manager/site.rb"
43
43
  require "reap/manager/spec.rb"
44
44
  require "reap/manager/stats.rb"
45
+ require "reap/manager/stamp.rb"
45
46
  require "reap/manager/scm.rb"
46
47
  require "reap/manager/svn.rb"
47
48
  require "reap/manager/test.rb"
@@ -53,33 +53,37 @@ module Reap
53
53
  secure = options.secure # Use TLS/SSL true or false?
54
54
  password = options.password || ENV['EMAIL_PASSWORD']
55
55
 
56
- title = options.title || metadata.title
57
- version = options.versoin || metadata.version
56
+ title = options.title || metadata.title
57
+ version = options.versoin || metadata.version
58
58
 
59
59
  # defaults
60
- subject ||= "ANN: #{title}, v#{version}"
60
+ subject ||= "%s, v%s released"
61
61
  account ||= mail_from
62
62
 
63
63
  subject = subject % [title, version]
64
64
 
65
- puts "\n#{message}\n\n"
66
-
67
- if mail_to and !dryrun?
68
- ans = ask("Would you like to email this announcement?", "yN")
69
- case ans.downcase
70
- when 'y', 'yes'
71
- email(message,
72
- :to => mail_to,
73
- :from => mail_from,
74
- :subject => subject,
75
- :server => server,
76
- :port => port,
77
- :domain => domain,
78
- :account => account,
79
- :login => login,
80
- :secure => secure,
81
- :password => password
82
- )
65
+ if dryrun?
66
+ puts "[DRYRUN] Email '#{subject}'"
67
+ puts "\n#{message}\n\n" if verbose?
68
+ else
69
+ puts "\n#{message}\n\n"
70
+ if mail_to
71
+ ans = ask("Would you like to email this announcement?", "yN")
72
+ case ans.downcase
73
+ when 'y', 'yes'
74
+ email(message,
75
+ :to => mail_to,
76
+ :from => mail_from,
77
+ :subject => subject,
78
+ :server => server,
79
+ :port => port,
80
+ :domain => domain,
81
+ :account => account,
82
+ :login => login,
83
+ :secure => secure,
84
+ :password => password
85
+ )
86
+ end
83
87
  end
84
88
  end
85
89
  end
@@ -140,7 +144,7 @@ module Reap
140
144
 
141
145
  template = message.dup
142
146
 
143
- template.scan(/[$](.*?)[$]/m) do |key|
147
+ template.scan(/\$(\w+?)\$/m) do |key|
144
148
  #key = key.strip
145
149
  name = $1.strip #key[1..-1]
146
150
  if metadata.respond_to?(name.downcase)
@@ -152,7 +156,7 @@ module Reap
152
156
  end
153
157
 
154
158
  message.gsub!(/(^|[ ])[$].*?(?=[ ]|$)/,'') # remove unused vars
155
- message.gsub!(/\n\s*\n\s*\n/m,"\n\n") # remove any triple blank lines
159
+ message.gsub!(/\n\s*\n\s*\n/m,"\n\n") # remove any triple blank lines
156
160
  message.rstrip!
157
161
 
158
162
  return message
@@ -30,6 +30,8 @@ module Reap
30
30
 
31
31
  options = configure_options(options, 'package-gem', 'package')
32
32
 
33
+ prepare(options)
34
+
33
35
  package = metadata.clone
34
36
  package.update(options)
35
37
 
@@ -61,6 +61,10 @@ module Reap
61
61
  make_target 'distclean'
62
62
  end
63
63
 
64
+ # TODO: Clobber should get rid of Makefiles too.
65
+
66
+ #alias_method :clobber_make, :make_distclean
67
+
64
68
  # Create Makefile(s).
65
69
 
66
70
  def make_extconf
@@ -19,6 +19,17 @@ module Reap
19
19
  end
20
20
  end
21
21
 
22
+ # Prepare for packaging (clean, distclean, stamp).
23
+ #
24
+ # TODO: When we add support for binary packages distclean
25
+ # should not be done for them.
26
+
27
+ def prepare(options)
28
+ clean
29
+ make_distclean if compiles?
30
+ stamp(options)
31
+ end
32
+
22
33
  # General pack command.
23
34
 
24
35
  def package(options=nil)
@@ -47,6 +58,8 @@ module Reap
47
58
 
48
59
  options = configure_options(options, 'package-tgz', 'package')
49
60
 
61
+ prepare(options)
62
+
50
63
  package = metadata.clone
51
64
  package.update(options)
52
65
 
@@ -88,6 +101,8 @@ module Reap
88
101
 
89
102
  options = configure_options(options, 'package-zip', 'package')
90
103
 
104
+ prepare(options)
105
+
91
106
  package = metadata.clone
92
107
  package.update(options)
93
108
 
@@ -2,17 +2,12 @@ module Reap
2
2
 
3
3
  class Manager
4
4
 
5
- # DEFAULT['rdoc'] = {
6
- # 'template' => 'html',
7
- # 'output' => 'doc/rdoc',
8
- # 'main' => 'README',
9
- # 'inline' => true,
10
- # 'merge' => true,
11
- # 'exclude' => [],
12
- # 'include' => ['lib', '[A-Z]*'],
13
- # 'adfile' => 'doc/ads/rdoc.html',
14
- # 'targets' => nil
15
- # }
5
+ # Generate documentation. At this time it simply
6
+ # means generating rdocs.
7
+
8
+ def document(options)
9
+ rdoc(options)
10
+ end
16
11
 
17
12
  # Generate rdocs.
18
13
  #
@@ -4,75 +4,41 @@ module Reap
4
4
 
5
5
  class Manager
6
6
 
7
- # Update VERSION stamp file.
8
- #
9
- # TODO: Should we also update a lib/version.rb file?
7
+ # Release packages (to rubyforge). This generates
8
+ # the packages, and then distributes them to the
9
+ # file server.
10
10
 
11
- def stamp(options={})
12
- options = configure_options(options, 'stamp')
13
-
14
- meta = File.directory?('meta')
15
-
16
- version = options['version'] || metadata.version || '0.0.0'
17
- status = options['status'] || metadata.status || 'alpha'
18
-
19
- abort "Invalid version -- #{version}" unless /^[0-9]/ =~ version
20
-
21
- file = glob('{,meta/}version{,.txt}', File::FNM_CASEFOLD).first
22
- file = (meta ? 'meta/VERSION' : 'VERSION') unless file
23
-
24
- text = "#{version} #{status} (#{Time.now.strftime('%Y-%m-%d')})"
11
+ def release(options={})
12
+ package(options)
13
+ rubyforge_release(options)
14
+ end
25
15
 
26
- if File.exist?(file)
27
- old_text = File.read(file).strip
28
- return if text == old_text
29
- end
16
+ # A complete rollout. This will prepare (clean, stamp and package),
17
+ # then document, publish and release, tag and announce. It will
18
+ # do under direction. You can use the --force option to bypass this
19
+ # and have evey action taken automatically.
30
20
 
31
- if dryrun?
32
- puts file + ":"
33
- puts text
21
+ def rollout(options={})
22
+ if force?
23
+ doc, pub, ann, tag = true, true, true, true
34
24
  else
35
- File.open(file, 'w'){|f| f << text}
36
- puts "#{file} updated."
25
+ doc = ask("Generate doumentation?", "Yn").downcase =~ /^(|y|yes)$/i
26
+ pub = ask("Publish website?", "Yn") =~ /^(|y|yes)$/i
27
+ tag = ask("Tag current version?", "Yn") =~ /^(|y|yes)$/i
28
+ ann = ask("Announce release?", "Yn") =~ /^(|y|yes)$/i
29
+ puts
37
30
  end
38
31
 
39
- # TODO: Stamp .roll if roll file exists.
40
- # should we read current .roll file and use as defaults?
41
- if File.exist?('.roll')
42
- str = []
43
- str << "name = #{metadata.name}"
44
- str << "version = #{metadata.version}"
45
- str << "status = #{metadata.status}"
46
- str << "date = #{metadata.date}"
47
- str << "default = #{metadata.default}"
48
- str << "libpath = #{metadata.libpath}"
49
- # File.open('.roll','w'){ |f| f << str.join("\n") }
50
- end
51
- end
52
-
53
- # Clean, stamp if need be and package.
54
-
55
- def prepare(options={})
56
- clean
57
- make_distclean if compiles?
58
- stamp(options)
59
- package(options)
60
- end
32
+ document(options) if doc
33
+ publish(options) if pub
61
34
 
62
- # Prepare and release to rubyforge.
63
-
64
- def release(options={})
65
- prepare(options)
66
- rubyforge_release(options)
67
- #announce(options)
68
- puts "\nBe sure to tag and announce this release if need be."
35
+ #package(options)
36
+ release(options)
37
+ scm_tag(options) if tag
38
+ announce(options) if ann
69
39
  end
70
40
 
71
- #def release(options)
72
- #name, version = release.name, release.version
73
- #sh "icli rubyforge release --version=#{version}"
74
- #end
75
-
76
41
  end
77
42
 
78
43
  end
44
+
@@ -4,15 +4,10 @@ module Reap
4
4
 
5
5
  class Manager
6
6
 
7
- #DEFAULT['rubyforge'] = {
8
- # 'changelog' => 'CHANGES',
9
- # 'notelog' => 'NOTES'
10
- #}
7
+ # Returns Rubyforge system object.
11
8
 
12
- # Release packages to rubyforge.
13
-
14
- def rubyforge_release(options)
15
- options = configure_options(options, 'release', 'rubyforge')
9
+ def rubyforge(options = nil)
10
+ options = configure_options(options, 'rubyforge')
16
11
 
17
12
  rubyforge_options = {}
18
13
  rubyforge_options[:dryrun] = dryrun?
@@ -21,21 +16,47 @@ module Reap
21
16
  rubyforge_options[:username] = options.delete('username') || ENV['RUBYFORGE_USERNAME']
22
17
  rubyforge_options[:group_id] = options.delete('group')
23
18
 
24
- host = Rubyforge.new(rubyforge_options)
19
+ Rubyforge.new(rubyforge_options)
20
+ end
25
21
 
26
- options['version'] = metadata.version
27
- options['store'] = 'pkg'
22
+ # Release packages to rubyforge.
28
23
 
29
- changelog = options['changelog'] #|| DEFAULT['release']['changelog'] || DEFAULT['rubyforge']['changelog']
30
- notelog = options['notelog'] #|| DEFAULT['release']['notelog'] || DEFAULT['rubyforge']['notelog']
24
+ def rubyforge_release(options)
25
+ release_options = configure_options(options, 'release')
26
+
27
+ store = 'pkg'
28
+ version = metadata.version
29
+
30
+ release_options['version'] = version
31
+ release_options['store'] = store
32
+
33
+ changelog = release_options['changelog'] #|| DEFAULT['release']['changelog'] || DEFAULT['rubyforge']['changelog']
34
+ notelog = release_options['notelog'] #|| DEFAULT['release']['notelog'] || DEFAULT['rubyforge']['notelog']
31
35
 
32
36
  changelog = Dir.glob(changelog.to_s, File::FNM_CASEFOLD).first
33
37
  notelog = Dir.glob(notelog.to_s, File::FNM_CASEFOLD).first
34
38
 
35
- options['changelog'] = changelog if File.exist?(changelog)
36
- options['notelog'] = notelog if File.exist?(notelog)
39
+ release_options['changelog'] = changelog if File.exist?(changelog)
40
+ release_options['notelog'] = notelog if File.exist?(notelog)
41
+
42
+ files = release_options['files'] || []
43
+
44
+ if files.empty?
45
+ files = Dir[File.join(store, '*')].select do |file|
46
+ /#{version}[.]/ =~ file
47
+ end
48
+ release_options['files'] = files
49
+ #files = Dir.glob(File.join(store,"#{name}-#{version}*"))
50
+ end
37
51
 
38
- host.release(options)
52
+ if dryrun? # Not going to do dryrun in Rubyforge class b/c it still requires logging in.
53
+ files.each do |file|
54
+ puts "[DRYRUN] Release #{file}"
55
+ end
56
+ else
57
+ host = rubyforge(options)
58
+ host.release(release_options)
59
+ end
39
60
  end
40
61
 
41
62
  end
@@ -0,0 +1,64 @@
1
+ require 'reap/manager/rubyforge'
2
+
3
+ module Reap
4
+
5
+ class Manager
6
+
7
+ # Update VERSION stamp file.
8
+ #
9
+ # TODO: Should we also update a lib/version.rb file?
10
+ # TODO: Make sure the new version isn't less then the old verison.
11
+ # Will have to use VersionNumnber class for this.
12
+
13
+ def stamp(options={})
14
+ options ||= {}
15
+
16
+ default = configuration['stamp']
17
+
18
+ version = options['version'] || metadata.version || default['version'] || '0.0.0'
19
+ status = options['status'] || metadata.status || default['status'] || 'alpha'
20
+
21
+ abort "Invalid version -- #{version}" unless /^[0-9]/ =~ version
22
+
23
+ meta = File.directory?('meta')
24
+
25
+ file = glob('{,meta/}version{,.txt}', File::FNM_CASEFOLD).first
26
+ file = (meta ? 'meta/VERSION' : 'VERSION') unless file
27
+
28
+ text = "#{version} #{status} (#{Time.now.strftime('%Y-%m-%d')})"
29
+
30
+ if File.exist?(file)
31
+ old_text = File.read(file).strip
32
+ return if text == old_text
33
+ end
34
+
35
+ if dryrun?
36
+ puts "[DRYRUN] echo #{text} > #{file}"
37
+ else
38
+ File.open(file, 'w'){|f| f << text}
39
+ puts text
40
+ puts "#{file} updated."
41
+
42
+ metadata.version = version
43
+ metadata.status = status
44
+ metadata.released = Time.now
45
+ end
46
+
47
+ # TODO: Stamp .roll if roll file exists.
48
+ # should we read current .roll file and use as defaults?
49
+ if File.exist?('.roll')
50
+ str = []
51
+ str << "name = #{metadata.name}"
52
+ str << "version = #{metadata.version}"
53
+ str << "status = #{metadata.status}"
54
+ str << "date = #{metadata.date}"
55
+ str << "default = #{metadata.default}"
56
+ str << "libpath = #{metadata.libpath}"
57
+ # File.open('.roll','w'){ |f| f << str.join("\n") }
58
+ end
59
+ end
60
+
61
+ end
62
+
63
+ end
64
+
@@ -193,7 +193,7 @@ module Reap
193
193
  def release(options)
194
194
  options = options.rekey
195
195
 
196
- version = options[:version]
196
+ version = options[:version] || metadata.version
197
197
  changelog = options[:changelog]
198
198
  notelog = options[:notelog]
199
199
 
@@ -240,38 +240,56 @@ module Reap
240
240
  login do
241
241
 
242
242
  unless package_id = package?(package)
243
- #unless options['force']
243
+ if dryrun?
244
+ puts "[DRYRUN] Package '#{package}' does not exist."
245
+ puts "[DRYRUN] Create package #{package}."
246
+ abort "Cannot continue in dryrun mode."
247
+ else
248
+ #unless options['force']
244
249
  q = "Package '#{package}' does not exist. Create?"
245
250
  a = ask(q, 'yN')
246
251
  abort "Task canceled." unless ['y', 'yes', 'okay'].include?(a.downcase)
247
- #end
248
- puts "Creating package #{package}..."
249
- abort "Cannot continue in dry-run mode." if dryrun?
250
- create_package(package, is_public)
251
- unless package_id = package?(package)
252
- raise "Package creation failed."
252
+ #end
253
+ puts "Creating package #{package}..."
254
+ create_package(package, is_public)
255
+ unless package_id = package?(package)
256
+ raise "Package creation failed."
257
+ end
253
258
  end
254
259
  end
255
260
  if release_id = release?(release, package_id)
256
261
  #unless options[:force]
262
+ if dryrun?
263
+ puts "Release #{release} already exists."
264
+ else
257
265
  q = "Release #{release} already exists. Re-release?"
258
266
  a = ask(q, 'yN')
259
267
  abort "Task canceled." unless ['y', 'yes', 'okay'].include?(a.downcase)
260
268
  #puts "Use -f option to force re-release."
261
269
  #return
262
- #end
270
+ end
263
271
  files.each do |file|
264
272
  fname = File.basename(file)
265
273
  if file_id = file?(fname, package)
266
- puts "Removing file #{fname}..."
267
- remove_file(file_id, release_id, package_id) unless dryrun?
274
+ if dryrun?
275
+ puts "[DRYRUN] Remove file #{fname}."
276
+ else
277
+ puts "Removing file #{fname}..."
278
+ remove_file(file_id, release_id, package_id)
279
+ end
280
+ end
281
+ if dryrun?
282
+ puts "[DRYRUN] Add file #{fname}."
283
+ else
284
+ puts "Adding file #{fname}..."
285
+ add_file(file, release_id, package_id, processor)
268
286
  end
269
- puts "Adding file #{fname}..."
270
- add_file(file, release_id, package_id, processor) unless dryrun?
271
287
  end
272
288
  else
273
- puts "Adding release #{release}..."
274
- unless dryrun?
289
+ if dryrun?
290
+ puts "[DRYRUN] Adding release #{release}..."
291
+ else
292
+ puts "Adding release #{release}..."
275
293
  add_release(release, package_id, files,
276
294
  :processor => processor,
277
295
  :release_date => date,
@@ -288,7 +306,7 @@ module Reap
288
306
  #end
289
307
  end
290
308
  end
291
- puts "Release complete!"
309
+ puts "Release complete!" unless dryrun?
292
310
  end
293
311
 
294
312
  # #
@@ -92,10 +92,14 @@ module Reap
92
92
  url = "#{protocol}://" + File.join(developer_domain, path, name)
93
93
  end
94
94
 
95
- case ask("Branch: #{url} ? [yN]").strip.downcase
96
- when 'y', 'yes'
97
- #sh "svn copy #{protocol}://#{username}@#{repository}/trunk #{url}"
98
- sh "svn copy . #{url}"
95
+ if dryrun?
96
+ puts "[DRYRUN] svn copy . #{url}"
97
+ else
98
+ case ask("Branch: #{url} ? [yN]").strip.downcase
99
+ when 'y', 'yes'
100
+ #sh "svn copy #{protocol}://#{username}@#{repository}/trunk #{url}"
101
+ sh "svn copy . #{url}"
102
+ end
99
103
  end
100
104
  end
101
105
 
@@ -115,10 +119,14 @@ module Reap
115
119
  url = "#{protocol}://" + File.join(developer_domain, path, name)
116
120
  end
117
121
 
118
- case ask("Tag: #{url} ? [yN]").strip.downcase
119
- when 'y', 'yes'
120
- #sh "svn copy #{protocol}://#{username}@#{repository}/trunk #{url}"
121
- sh "svn copy . #{url}"
122
+ if dryrun?
123
+ puts "[DRYRUN] svn copy . #{url}"
124
+ else
125
+ case ask("Tag: #{url} ? [yN]").strip.downcase
126
+ when 'y', 'yes'
127
+ #sh "svn copy #{protocol}://#{username}@#{repository}/trunk #{url}"
128
+ sh "svn copy . #{url}"
129
+ end
122
130
  end
123
131
  end
124
132
 
data/meta/VERSION CHANGED
@@ -1 +1 @@
1
- 9.2.0 alpha (2008-02-07)
1
+ 9.2.1 alpha (2008-02-08)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reap
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.2.0
4
+ version: 9.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Sawyer <transfire@gmail.com>
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-02-07 00:00:00 -05:00
12
+ date: 2008-02-08 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -41,6 +41,7 @@ executables:
41
41
  - reap-package
42
42
  - reap-scm-tag
43
43
  - reap-publish
44
+ - reap-rollout
44
45
  - reap-spec
45
46
  - reap-prepare
46
47
  - reap-test-load
@@ -125,9 +126,10 @@ files:
125
126
  - lib/reap/manager/clean.rb
126
127
  - lib/reap/manager/publish.rb
127
128
  - lib/reap/manager/spec.rb
128
- - lib/reap/manager/pack.rb
129
+ - lib/reap/manager/stamp.rb
129
130
  - lib/reap/manager/svn.rb
130
131
  - lib/reap/manager/scm.rb
132
+ - lib/reap/manager/package.rb
131
133
  - lib/reap/manager/check.rb
132
134
  - lib/reap/manager/announce.rb
133
135
  - lib/reap/utilities
@@ -184,6 +186,7 @@ files:
184
186
  - bin/reap-package
185
187
  - bin/reap-scm-tag
186
188
  - bin/reap-publish
189
+ - bin/reap-rollout
187
190
  - bin/reap-spec
188
191
  - bin/reap-prepare
189
192
  - bin/reap-test-load