reap 6.0.2 → 9.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +6 -0
- data/COPYING +666 -395
- data/MANIFEST +139 -0
- data/NOTES +12 -0
- data/README +19 -163
- data/bin/reap-announce +7 -0
- data/bin/reap-check-load +8 -0
- data/bin/reap-check-syntax +7 -0
- data/bin/reap-clean +7 -0
- data/bin/reap-clobber +7 -0
- data/bin/reap-doc +7 -0
- data/bin/reap-doc-rdoc +7 -0
- data/bin/reap-doc-ri +7 -0
- data/bin/reap-init +69 -0
- data/bin/reap-inspect +7 -0
- data/bin/reap-install +8 -0
- data/bin/reap-install-gem +8 -0
- data/bin/reap-log +7 -0
- data/bin/reap-log-changes +8 -0
- data/bin/reap-log-notes +8 -0
- data/bin/reap-make +7 -0
- data/bin/reap-make-clean +7 -0
- data/bin/reap-make-distclean +7 -0
- data/bin/reap-make-extconf +7 -0
- data/bin/reap-make-static +8 -0
- data/bin/reap-package +8 -0
- data/bin/reap-package-gem +7 -0
- data/bin/reap-package-tgz +7 -0
- data/bin/reap-package-zip +7 -0
- data/bin/reap-prepare +7 -0
- data/bin/reap-publish +7 -0
- data/bin/reap-release +7 -0
- data/bin/reap-scaffold +8 -0
- data/bin/reap-scm-branch +7 -0
- data/bin/reap-scm-tag +7 -0
- data/bin/reap-spec +7 -0
- data/bin/reap-spec-doc +8 -0
- data/bin/reap-stamp +7 -0
- data/bin/reap-stats +7 -0
- data/bin/reap-test +7 -0
- data/bin/reap-test-cross +7 -0
- data/bin/reap-test-load +9 -0
- data/bin/reap-test-solo +7 -0
- data/bin/reap-uninstall +7 -0
- data/bin/reap-uninstall-gem +7 -0
- data/data/reap/base/CHANGES +19 -0
- data/data/reap/base/COPYING +674 -0
- data/data/reap/base/NOTES +12 -0
- data/data/reap/base/README +8 -0
- data/data/reap/build/rake/Rakefile +130 -0
- data/{forge/reference/installers → data/reap/build/rake}/setup.rb +155 -97
- data/data/reap/build/rake-lite/install.rb +79 -0
- data/data/reap/build/tasks/task/rdoc +211 -0
- data/data/reap/{setup.rb → build/tasks/task/setup} +248 -200
- data/data/reap/build/tasks/task/test +38 -0
- data/data/reap/init/meta/project.yaml +21 -0
- data/demo/README +15 -0
- data/demo/lib/foo/foo.rb +7 -0
- data/demo/meta/VERSION +1 -0
- data/demo/meta/project.yaml +21 -0
- data/lib/reap/application.rb +80 -0
- data/lib/reap/default.yaml +77 -0
- data/lib/reap/extensions/array.rb +50 -0
- data/lib/reap/extensions/hash.rb +63 -0
- data/lib/reap/extensions/string.rb +31 -0
- data/lib/reap/extensions.rb +6 -0
- data/lib/reap/iobject.rb +264 -0
- data/lib/reap/manager/announce.rb +193 -0
- data/lib/reap/manager/check.rb +109 -0
- data/lib/reap/manager/clean.rb +58 -0
- data/lib/reap/manager/gem.rb +200 -0
- data/lib/reap/manager/html.rb +69 -0
- data/lib/reap/manager/log.rb +214 -0
- data/lib/reap/manager/make.rb +109 -0
- data/lib/reap/manager/pack.rb +232 -0
- data/lib/reap/manager/publish.rb +72 -0
- data/lib/reap/manager/rdoc.rb +194 -0
- data/lib/reap/manager/release.rb +78 -0
- data/lib/reap/manager/rubyforge.rb +44 -0
- data/lib/reap/manager/scaffold.rb +138 -0
- data/lib/reap/manager/scm.rb +66 -0
- data/lib/reap/manager/site.rb +27 -0
- data/lib/reap/manager/spec.rb +94 -0
- data/lib/reap/manager/stats.rb +145 -0
- data/lib/reap/manager/svn.rb +76 -0
- data/lib/reap/manager/test.rb +389 -0
- data/lib/reap/manager.rb +74 -0
- data/lib/reap/metadata.rb +603 -0
- data/lib/reap/project.rb +165 -0
- data/lib/reap/settings.rb +67 -0
- data/lib/reap/systems/rubyforge.rb +737 -0
- data/lib/reap/systems/subversion.rb +333 -0
- data/lib/reap/utilities/fileutils.rb +304 -0
- data/lib/reap/utilities/netutils.rb +221 -0
- data/lib/reap/utilities/setuputils.rb +124 -0
- data/lib/reap/utilities/shellutils.rb +175 -0
- data/log/Changelog.txt +107 -0
- data/log/FIXME.txt +25 -0
- data/log/TODO.txt +72 -0
- data/meta/VERSION +1 -0
- data/meta/description +4 -0
- data/meta/project.yaml +20 -0
- data/task/man +14 -0
- data/task/rdoc +20 -0
- data/{data/reap/scaffold/standard/setup.rb → task/setup} +248 -200
- metadata +225 -153
- data/ProjectInfo +0 -105
- data/bin/reap +0 -5
- data/bin/rubytest +0 -5
- data/data/reap/install.rb +0 -62
- data/data/reap/scaffold/standard/COPYING +0 -403
- data/data/reap/scaffold/standard/ChangeLog +0 -0
- data/data/reap/scaffold/standard/INSTALL +0 -14
- data/data/reap/scaffold/standard/ProjectInfo +0 -77
- data/data/reap/scaffold/standard/README +0 -3
- data/data/reap/scaffold/standard/Rakefile +0 -10
- data/data/reap/scaffold/standard/TODO +0 -0
- data/data/reap/scaffold/subversion/trunk/COPYING +0 -403
- data/data/reap/scaffold/subversion/trunk/ChangeLog +0 -0
- data/data/reap/scaffold/subversion/trunk/INSTALL +0 -14
- data/data/reap/scaffold/subversion/trunk/ProjectInfo +0 -76
- data/data/reap/scaffold/subversion/trunk/README +0 -3
- data/data/reap/scaffold/subversion/trunk/Rakefile +0 -10
- data/data/reap/scaffold/subversion/trunk/TODO +0 -0
- data/data/reap/scaffold/subversion/trunk/setup.rb +0 -1568
- data/forge/ProjectInfo +0 -38
- data/forge/ProjectInfo.rb +0 -76
- data/forge/TODO +0 -10
- data/forge/installer.rb +0 -250
- data/forge/reference/Rakefile +0 -124
- data/forge/reference/Rakefile.htm +0 -69
- data/forge/reference/aRakefile +0 -60
- data/forge/reference/compositepublisher.rb +0 -24
- data/forge/reference/ftptools.rb +0 -139
- data/forge/reference/installers/package.rb +0 -629
- data/forge/reference/license-each.rb +0 -85
- data/forge/reference/publisher.rb +0 -75
- data/forge/reference/rubyforge.rb +0 -247
- data/forge/reference/rubyforgepublisher.rb +0 -18
- data/forge/reference/sshpublisher.rb +0 -47
- data/forge/reference/suby-cvs.rb +0 -46
- data/forge/scaffold.rb +0 -126
- data/forge/unit_runner/README +0 -6
- data/forge/unit_runner/commentrunner.rb +0 -62
- data/forge/unit_runner/cunit.rb +0 -17
- data/forge/unit_runner/forkedrunner.rb +0 -91
- data/forge/unit_runner/sample.rb +0 -16
- data/lib/reap/bin/reap.rb +0 -230
- data/lib/reap/bin/rubytest.rb +0 -53
- data/lib/reap/class/announce.rb +0 -220
- data/lib/reap/class/doap.rb +0 -80
- data/lib/reap/class/extest.rb +0 -146
- data/lib/reap/class/filer.rb +0 -62
- data/lib/reap/class/manifest.rb +0 -68
- data/lib/reap/class/package.rb +0 -576
- data/lib/reap/class/publish.rb +0 -152
- data/lib/reap/class/rdoc.rb +0 -123
- data/lib/reap/class/test.rb +0 -264
- data/lib/reap/projectinfo.rb +0 -208
- data/lib/reap/rake.rb +0 -42
- data/lib/reap/reap.rb +0 -89
- data/lib/reap/tasks.rb +0 -756
- data/lib/reap/taskutils.rb +0 -122
- data/note/LATEST +0 -44
- data/note/doap.xml +0 -28
- data/note/history/Rakefile-0.1 +0 -308
- data/sample/ProjectInfo +0 -96
- data/sample/Rakefile +0 -9
- data/sample/Reapfile +0 -11
- data/sample/task/demo.rb +0 -15
- data/setup.rb +0 -1568
- data/web/ProjectInfo.html +0 -75
- data/web/images/grape.jpg +0 -0
- data/web/index.html +0 -312
@@ -0,0 +1,221 @@
|
|
1
|
+
# = TITLE:
|
2
|
+
#
|
3
|
+
# Networking Utility Functions
|
4
|
+
#
|
5
|
+
# = COPYING:
|
6
|
+
#
|
7
|
+
# Copyright (c) 2007,2008 Tiger Ops
|
8
|
+
#
|
9
|
+
# This file is part of the Reap program.
|
10
|
+
#
|
11
|
+
# Reap is free software: you can redistribute it and/or modify
|
12
|
+
# it under the terms of the GNU General Public License as published by
|
13
|
+
# the Free Software Foundation, either version 3 of the License, or
|
14
|
+
# (at your option) any later version.
|
15
|
+
#
|
16
|
+
# Reap is distributed in the hope that it will be useful,
|
17
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
18
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
19
|
+
# GNU General Public License for more details.
|
20
|
+
#
|
21
|
+
# You should have received a copy of the GNU General Public License
|
22
|
+
# along with Reap. If not, see <http://www.gnu.org/licenses/>.
|
23
|
+
|
24
|
+
require 'net/smtp'
|
25
|
+
require 'timeout'
|
26
|
+
begin
|
27
|
+
require 'openssl'
|
28
|
+
rescue LoadError
|
29
|
+
end
|
30
|
+
|
31
|
+
#
|
32
|
+
module Reap
|
33
|
+
module Utilities
|
34
|
+
|
35
|
+
module NetUtils
|
36
|
+
|
37
|
+
# Email function to easily send out an email.
|
38
|
+
#
|
39
|
+
# Settings:
|
40
|
+
#
|
41
|
+
# subject Subject of email message.
|
42
|
+
# from Message FROM address [email].
|
43
|
+
# to Email address to send announcemnt.
|
44
|
+
# server Email server to route message.
|
45
|
+
# port Email server's port.
|
46
|
+
# port_secure Email server's port.
|
47
|
+
# domain Email server's domain name.
|
48
|
+
# account Email account name if needed.
|
49
|
+
# password Password for login..
|
50
|
+
# login Login type: plain, cram_md5 or login [plain].
|
51
|
+
# secure Uses TLS security, true or false? [false]
|
52
|
+
# message Mesage to send -or-
|
53
|
+
# file File that contains message.
|
54
|
+
|
55
|
+
def email(message, settings)
|
56
|
+
settings ||= {}
|
57
|
+
settings.rekey
|
58
|
+
|
59
|
+
server = settings[:server]
|
60
|
+
account = settings[:account] || ENV['EMAIL_ACCOUNT']
|
61
|
+
passwd = settings[:password] || ENV['EMAIL_PASSWORD']
|
62
|
+
login = settings[:login]
|
63
|
+
subject = settings[:subject]
|
64
|
+
mail_to = settings[:to] || settings[:mail_to]
|
65
|
+
mail_from = settings[:from] || settings[:mail_from]
|
66
|
+
secure = settings[:secure]
|
67
|
+
domain = settings[:domain] || server
|
68
|
+
|
69
|
+
port = (settings[:port_secure] || 465) if secure
|
70
|
+
port = (settings[:port] || 25) unless secure
|
71
|
+
|
72
|
+
account ||= mail_from
|
73
|
+
login ||= :plain
|
74
|
+
|
75
|
+
login = login.to_sym
|
76
|
+
|
77
|
+
#mail_to = nil if mail_to.empty?
|
78
|
+
|
79
|
+
raise ArgumentError, "missing email field -- server" unless server
|
80
|
+
raise ArgumentError, "missing email field -- account" unless account
|
81
|
+
raise ArgumentError, "missing email field -- subject" unless subject
|
82
|
+
raise ArgumentError, "missing email field -- to" unless mail_to
|
83
|
+
raise ArgumentError, "missing email field -- from" unless mail_from
|
84
|
+
|
85
|
+
passwd ||= password("#{account} password:")
|
86
|
+
|
87
|
+
mail_to = [mail_to].flatten.compact
|
88
|
+
|
89
|
+
msg = ""
|
90
|
+
msg << "From: #{mail_from}\n"
|
91
|
+
msg << "To: #{mail_to.join(';')}\n"
|
92
|
+
msg << "Subject: #{subject}\n"
|
93
|
+
msg << ""
|
94
|
+
msg << message
|
95
|
+
|
96
|
+
if secure
|
97
|
+
Net::SMTP.send(:include, Net::SMTP::TLS)
|
98
|
+
Net::SMTP.enable_tls #if secure #if Net::SMTP.respond_to?(:enable_tls) and secure
|
99
|
+
end
|
100
|
+
|
101
|
+
begin
|
102
|
+
Net::SMTP.start(server, port, domain, account, passwd, login) do |smtp|
|
103
|
+
smtp.send_message(msg, mail_from, mail_to)
|
104
|
+
end
|
105
|
+
puts "Email sent successfully to #{mail_to.join(';')}."
|
106
|
+
return true
|
107
|
+
rescue => e
|
108
|
+
if trace?
|
109
|
+
raise e
|
110
|
+
else
|
111
|
+
abort "Email delivery failed."
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
|
122
|
+
module Net #:nodoc: all
|
123
|
+
class SMTP
|
124
|
+
module TLS
|
125
|
+
|
126
|
+
def self.included(base)
|
127
|
+
base.extend(ClassMethods)
|
128
|
+
|
129
|
+
@usetls = base.use_tls?
|
130
|
+
end
|
131
|
+
|
132
|
+
module ClassMethods
|
133
|
+
def self.extended(base)
|
134
|
+
base.disable_tls
|
135
|
+
end
|
136
|
+
|
137
|
+
def enable_tls()
|
138
|
+
@@usetls = true
|
139
|
+
end
|
140
|
+
|
141
|
+
def disable_tls()
|
142
|
+
@@usetls = false
|
143
|
+
end
|
144
|
+
|
145
|
+
def use_tls?()
|
146
|
+
@@usetls
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
def use_tls?()
|
151
|
+
@usetls
|
152
|
+
end
|
153
|
+
|
154
|
+
def enable_tls()
|
155
|
+
@usetls = true
|
156
|
+
end
|
157
|
+
|
158
|
+
def disable_tls()
|
159
|
+
@usetls = false
|
160
|
+
end
|
161
|
+
|
162
|
+
def use_tls?()
|
163
|
+
@usetls
|
164
|
+
end
|
165
|
+
|
166
|
+
private
|
167
|
+
def do_start(helodomain, user, secret, authtype)
|
168
|
+
raise IOError('SMTP session already started') if @started
|
169
|
+
check_auth_args user, secret, authtype if user or secret
|
170
|
+
|
171
|
+
sock = timeout(@open_timeout) {TCPSocket.open(@address, @port) }
|
172
|
+
@socket = Net::InternetMessageIO.new(sock)
|
173
|
+
@socket.read_timeout = @read_timeout
|
174
|
+
@socket.debug_output = STDERR
|
175
|
+
|
176
|
+
check_response(critical {recv_response() } )
|
177
|
+
do_helo(helodomain)
|
178
|
+
|
179
|
+
if @@usetls
|
180
|
+
raise 'openssl is not installed' unless defined?(OpenSSL)
|
181
|
+
ssl = OpenSSL::SSL::SSLSocket.new(sock)
|
182
|
+
starttls
|
183
|
+
ssl.sync_close = true
|
184
|
+
ssl.connect
|
185
|
+
|
186
|
+
@socket = Net::InternetMessageIO.new(ssl)
|
187
|
+
@socket.read_timeout = @read_timeout
|
188
|
+
@socket.debug_output = STDERR
|
189
|
+
do_helo(helodomain)
|
190
|
+
end
|
191
|
+
|
192
|
+
authenticate user, secret, authtype if user
|
193
|
+
@started = true
|
194
|
+
ensure
|
195
|
+
@socket.close if not @started and @socket and not @socket.closed?
|
196
|
+
end
|
197
|
+
|
198
|
+
def do_helo(helodomain)
|
199
|
+
begin
|
200
|
+
if @esmtp
|
201
|
+
ehlo helodomain
|
202
|
+
else
|
203
|
+
helo helodomain
|
204
|
+
end
|
205
|
+
rescue Net::ProtocolError
|
206
|
+
if @esmtp
|
207
|
+
@esmtp = false
|
208
|
+
@error_occured = false
|
209
|
+
retry
|
210
|
+
end
|
211
|
+
raise
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
def starttls
|
216
|
+
getok('STARTTLS')
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
end
|
221
|
+
end
|
@@ -0,0 +1,124 @@
|
|
1
|
+
# = TITLE:
|
2
|
+
#
|
3
|
+
# Setup DSL
|
4
|
+
#
|
5
|
+
# = SYNOPSIS:
|
6
|
+
#
|
7
|
+
# Mixen used to setup a package, eg. a manual install.
|
8
|
+
#
|
9
|
+
# = COPYING:
|
10
|
+
#
|
11
|
+
# Copyright (c) 2007,2008 Tiger Ops
|
12
|
+
#
|
13
|
+
# This file is part of the Reap program.
|
14
|
+
#
|
15
|
+
# Reap is free software: you can redistribute it and/or modify
|
16
|
+
# it under the terms of the GNU General Public License as published by
|
17
|
+
# the Free Software Foundation, either version 3 of the License, or
|
18
|
+
# (at your option) any later version.
|
19
|
+
#
|
20
|
+
# Reap is distributed in the hope that it will be useful,
|
21
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
22
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
23
|
+
# GNU General Public License for more details.
|
24
|
+
#
|
25
|
+
# You should have received a copy of the GNU General Public License
|
26
|
+
# along with Reap. If not, see <http://www.gnu.org/licenses/>.
|
27
|
+
|
28
|
+
#
|
29
|
+
module Reap
|
30
|
+
module Utilities
|
31
|
+
|
32
|
+
# = Setup DSL
|
33
|
+
#
|
34
|
+
# Setup utilities provides a convenient way to install
|
35
|
+
# a ruby project via setup.rb.
|
36
|
+
|
37
|
+
module SetupUtils
|
38
|
+
|
39
|
+
# Installation to a prefix destination using setup.rb.
|
40
|
+
# Some package types may need this.
|
41
|
+
|
42
|
+
def prefix_install(prefix)
|
43
|
+
mkdir_p(prefix)
|
44
|
+
|
45
|
+
unless setup_rb
|
46
|
+
raise "Setup.rb is missing. Forced to abort."
|
47
|
+
end
|
48
|
+
# mock install
|
49
|
+
cmd = ''
|
50
|
+
cmd << 'ruby setup.rb '
|
51
|
+
cmd << '-q ' unless project.verbose?
|
52
|
+
cmd << 'config --installdirs=std ; '
|
53
|
+
cmd << 'ruby setup.rb '
|
54
|
+
cmd << '-q ' unless project.verbose?
|
55
|
+
cmd << "install --prefix=#{prefix}"
|
56
|
+
sh cmd
|
57
|
+
end
|
58
|
+
|
59
|
+
# If setup.rb is not found add a copy to the project.
|
60
|
+
# FIXME
|
61
|
+
|
62
|
+
def setup_rb
|
63
|
+
unless File.exist?('setup.rb')
|
64
|
+
f = File.join(libdir,'vendor','setup.rb')
|
65
|
+
if File.exist?(f)
|
66
|
+
cp(f,'.')
|
67
|
+
else
|
68
|
+
raise "setup.rb is not avaialble"
|
69
|
+
end
|
70
|
+
end
|
71
|
+
true
|
72
|
+
end
|
73
|
+
|
74
|
+
# # Setup and install. This builds and installs a project
|
75
|
+
# # using setup.rb or install.rb. If neither exist setup.rb
|
76
|
+
# # will be created for the purpose.
|
77
|
+
# #
|
78
|
+
# # options Command line options to add to shell command.
|
79
|
+
# # script Install script, default is install.rb or setup.rb
|
80
|
+
# #--
|
81
|
+
# # source Location of source. (Defaults to current directory)
|
82
|
+
# #++
|
83
|
+
#
|
84
|
+
# def setup(keys={})
|
85
|
+
#
|
86
|
+
# options = keys['options']
|
87
|
+
# script = keys['script']
|
88
|
+
# #source = keys.source || Dir.pwd
|
89
|
+
#
|
90
|
+
# options = [options].flatten.compact
|
91
|
+
#
|
92
|
+
# if script
|
93
|
+
# exe = script + ' '
|
94
|
+
# exe << options.join(' ')
|
95
|
+
# elsif File.exist?('install.rb')
|
96
|
+
# exe = 'ruby install.rb '
|
97
|
+
# exe << options.join(' ')
|
98
|
+
# elsif File.exist?('setup.rb') or setup_rb
|
99
|
+
# exe = 'ruby setup.rb '
|
100
|
+
# exe << '-q ' unless verbose?
|
101
|
+
# exe << options.join(' ')
|
102
|
+
# exe << ' all'
|
103
|
+
# else
|
104
|
+
# puts "Script setup.rb or install.rb is missing."
|
105
|
+
# return nil
|
106
|
+
# end
|
107
|
+
#
|
108
|
+
# # SHELLS OUT!
|
109
|
+
#
|
110
|
+
# #Dir.chdir(source) do
|
111
|
+
# #begin
|
112
|
+
# success = sh(exe)
|
113
|
+
# puts "Installation complete!" if success
|
114
|
+
# #rescue Errno::EACCES
|
115
|
+
# # puts "Permission denied"
|
116
|
+
# # exit -1
|
117
|
+
# #end
|
118
|
+
# #end
|
119
|
+
# end
|
120
|
+
|
121
|
+
end
|
122
|
+
|
123
|
+
end
|
124
|
+
end
|
@@ -0,0 +1,175 @@
|
|
1
|
+
# = TITLE:
|
2
|
+
#
|
3
|
+
# ShellUtils
|
4
|
+
#
|
5
|
+
# = COPYING:
|
6
|
+
#
|
7
|
+
# Copyright (c) 2007,2008 Tiger Ops
|
8
|
+
#
|
9
|
+
# This file is part of the Reap program.
|
10
|
+
#
|
11
|
+
# Reap is free software: you can redistribute it and/or modify
|
12
|
+
# it under the terms of the GNU General Public License as published by
|
13
|
+
# the Free Software Foundation, either version 3 of the License, or
|
14
|
+
# (at your option) any later version.
|
15
|
+
#
|
16
|
+
# Reap is distributed in the hope that it will be useful,
|
17
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
18
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
19
|
+
# GNU General Public License for more details.
|
20
|
+
#
|
21
|
+
# You should have received a copy of the GNU General Public License
|
22
|
+
# along with Reap. If not, see <http://www.gnu.org/licenses/>.
|
23
|
+
|
24
|
+
require 'reap/extensions'
|
25
|
+
|
26
|
+
module Reap
|
27
|
+
module Utilities
|
28
|
+
|
29
|
+
module OptionUtils
|
30
|
+
attr_accessor :dryrun
|
31
|
+
attr_accessor :trace
|
32
|
+
attr_accessor :force
|
33
|
+
attr_accessor :verbose
|
34
|
+
|
35
|
+
def dryrun? ; @dryrun ; end
|
36
|
+
def trace? ; @trace ; end
|
37
|
+
def force? ; @force ; end
|
38
|
+
def verbose? ; @verbose ; end
|
39
|
+
end
|
40
|
+
|
41
|
+
#
|
42
|
+
|
43
|
+
module ShellUtils
|
44
|
+
include OptionUtils
|
45
|
+
|
46
|
+
# Internal status report.
|
47
|
+
# Only output if dryrun or trace mode.
|
48
|
+
|
49
|
+
def status(message)
|
50
|
+
puts message if dryrun? or trace?
|
51
|
+
end
|
52
|
+
|
53
|
+
# Shell runner.
|
54
|
+
|
55
|
+
def sh(cmd)
|
56
|
+
if dryrun?
|
57
|
+
puts cmd
|
58
|
+
true
|
59
|
+
else
|
60
|
+
puts "--> system call: #{cmd}" if trace?
|
61
|
+
system(cmd)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# Convenient method to get simple console reply.
|
66
|
+
|
67
|
+
def ask(question, answers=nil)
|
68
|
+
print "#{question}"
|
69
|
+
print " [#{answers}] " if answers
|
70
|
+
until inp = $stdin.gets ; sleep 1 ; end
|
71
|
+
inp.strip
|
72
|
+
end
|
73
|
+
|
74
|
+
# Ask for a password. (FIXME: only for unix so far)
|
75
|
+
|
76
|
+
def password(prompt=nil)
|
77
|
+
msg ||= "Enter Password: "
|
78
|
+
inp = ''
|
79
|
+
|
80
|
+
print "#{prompt} "
|
81
|
+
|
82
|
+
begin
|
83
|
+
#system "stty -echo"
|
84
|
+
#inp = gets.chomp
|
85
|
+
until inp = $stdin.gets
|
86
|
+
sleep 1
|
87
|
+
end
|
88
|
+
ensure
|
89
|
+
#system "stty echo"
|
90
|
+
end
|
91
|
+
|
92
|
+
return inp.chomp
|
93
|
+
end
|
94
|
+
|
95
|
+
# # No fuss access to ARGV. This shows up as #commandline in the reap api.
|
96
|
+
# #
|
97
|
+
# # Ratch uses '=' for parameterized flags b/c this make parsing stupid simple
|
98
|
+
# # and that's a good thing!!! However you can use value! if need be.
|
99
|
+
#
|
100
|
+
# def commandline
|
101
|
+
# @commandline ||= ArgVector.new(ARGV)
|
102
|
+
# end
|
103
|
+
#
|
104
|
+
# alias_method :argument_vector, :commandline
|
105
|
+
#
|
106
|
+
# # Duplicate of ARGV.
|
107
|
+
#
|
108
|
+
# def argv
|
109
|
+
# @argv ||= ARGV.dup
|
110
|
+
# end
|
111
|
+
#
|
112
|
+
# # Convert command line argv to args.
|
113
|
+
# #
|
114
|
+
# # TODO Is this implmented as expected?
|
115
|
+
#
|
116
|
+
# def command_parameters
|
117
|
+
# argv.to_params
|
118
|
+
# end
|
119
|
+
|
120
|
+
# # Debug mode.
|
121
|
+
#
|
122
|
+
# def debug?
|
123
|
+
# @debug ||= %w{--debug}.any?{|a| argv.delete(a)}
|
124
|
+
# end
|
125
|
+
#
|
126
|
+
# #
|
127
|
+
#
|
128
|
+
# def verbose?
|
129
|
+
# @verbose ||= %w{--verbose}.any?{|a| argv.delete(a)}
|
130
|
+
# end
|
131
|
+
#
|
132
|
+
# #
|
133
|
+
#
|
134
|
+
# def verbose!
|
135
|
+
# @verbose = true
|
136
|
+
# end
|
137
|
+
#
|
138
|
+
# #
|
139
|
+
#
|
140
|
+
# def trace?
|
141
|
+
# @trace ||= %w{--trace}.any?{|a| argv.delete(a)}
|
142
|
+
# end
|
143
|
+
#
|
144
|
+
# #
|
145
|
+
#
|
146
|
+
# def trace!
|
147
|
+
# @trace = true
|
148
|
+
# end
|
149
|
+
#
|
150
|
+
# #
|
151
|
+
#
|
152
|
+
# def noharm?
|
153
|
+
# @noharm ||= %w{--dryrun --dry-run --noharm}.any?{|a| argv.delete(a)}
|
154
|
+
# end
|
155
|
+
# alias_method :dryrun?, :noharm? ; module_function :dryrun?
|
156
|
+
#
|
157
|
+
# #
|
158
|
+
#
|
159
|
+
# def noharm!
|
160
|
+
# @noharm = true
|
161
|
+
# end
|
162
|
+
# alias_method :dryrun!, :noharm! ; module_function :dryrun!
|
163
|
+
#
|
164
|
+
# # Force mode.
|
165
|
+
#
|
166
|
+
# def force?
|
167
|
+
# @force ||= %w{--force}.any?{|a| argv.delete(a)}
|
168
|
+
# end
|
169
|
+
#
|
170
|
+
# def force! ; @force = true ; end
|
171
|
+
|
172
|
+
end
|
173
|
+
|
174
|
+
end
|
175
|
+
end
|
data/log/Changelog.txt
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
= Subversion Changelog
|
2
|
+
|
3
|
+
== 2008-02-06 transami
|
4
|
+
|
5
|
+
* Added logs. (106)
|
6
|
+
* Added some work/scrap for old extest script. (105)
|
7
|
+
* Added reap-init which is used to create .reap and meta/project files. (104)
|
8
|
+
* Added some scaffolding files. (103)
|
9
|
+
* Move where load error is triggered if no .reap file found. (102)
|
10
|
+
* Only remove old stage is alrady exists. (101)
|
11
|
+
* Added default title attribute for rdoc. (100)
|
12
|
+
* Announce now uses README as tempalte by default and subs "please see" clauses for files. (99)
|
13
|
+
* Fixed scaffold.rb to be at least amrginally useful now. (98)
|
14
|
+
* Fixed dryrun? mode for generating changelog xsl. (97)
|
15
|
+
* Improved release task's ability to select the correct packages. (96)
|
16
|
+
* reap-scaffold is used to fully scaffold a project AFTER .reap and project files are in place. (95)
|
17
|
+
* Added data/reap/init for initial .reap and meta/project files. (94)
|
18
|
+
* Added .roll file. (93)
|
19
|
+
* Minor fix so that if .reap is an empty file configuration will be {}. (92)
|
20
|
+
* Loadpath and libpath are no longer the same project attribute.
|
21
|
+
* Rolls uses libpath to point directory to the directory that contains the library files. (eg. lib/foo)
|
22
|
+
* Loadpath is the traditional location that is usually a directory about the libpath. (eg. lib) (91)
|
23
|
+
* Updated manager.rb to reflect scaffold rather then prefab. (90)
|
24
|
+
* out_of_date? return true if no comparison files are found. (89)
|
25
|
+
* Moved reap-prefab binary to reap-scaffold. (88)
|
26
|
+
* Renamed prefab to scaffold. (87)
|
27
|
+
* Added ability for rdoc to generate for different target groups. (86)
|
28
|
+
* Use shell out to testrb for normal unit testing. (85)
|
29
|
+
* Update prefab.rb. (84)
|
30
|
+
|
31
|
+
== 2008-02-05 transami
|
32
|
+
|
33
|
+
* Removed meta/config.yaml, since .reap now takes its place. (83)
|
34
|
+
* Added work/outdated. (82)
|
35
|
+
* Finish organization of work directory. (81)
|
36
|
+
* Additional organization of work directory. (80)
|
37
|
+
* Orgainze work directory a bit. (79)
|
38
|
+
|
39
|
+
== 2008-02-04 transami
|
40
|
+
|
41
|
+
* VERSION 9.1.2 (78)
|
42
|
+
* Improved changelog production (cont.) (77)
|
43
|
+
* Fixed a reference to the package directory (pkg/). (76)
|
44
|
+
* Reworked change log a bit, simplifying configuration. (75)
|
45
|
+
* Package direcotory is now fixed as pkg/.
|
46
|
+
* Reap offers a lot optional configuration, but project directories are (mostly) better as standards.
|
47
|
+
* If there proves a real need for an excpetion to this, we can revisit it later.
|
48
|
+
* The #package_directory field really did not belong in the Project class anyway. (74)
|
49
|
+
* Added work/future direcotory to diff between old code being help for reference. (73)
|
50
|
+
* SVN text-based changelog is not built from the XML (using REXML). (72)
|
51
|
+
* Removed old crufy code from manager.rb. (71)
|
52
|
+
* Project#package_name no longer supports template argument. (70)
|
53
|
+
* Improved DEFAULT for a number of tools. (69)
|
54
|
+
* Clean no longer confirms file removeals. (68)
|
55
|
+
* Fixed misspelling of rubyopt in spec.rb. (67)
|
56
|
+
* Improved DEFAULT settings for rdoc.rb. (66)
|
57
|
+
* Make will create the Makefile if needed for all make commands. (65)
|
58
|
+
* Limit check tools to ruby code. (Maybe add C support in future). (64)
|
59
|
+
* Added ARGV to shell out of install/setup command. (63)
|
60
|
+
|
61
|
+
== 2008-02-01 transami
|
62
|
+
|
63
|
+
* VERSION 9.1.0 (62)
|
64
|
+
* Stamp now puts parenthesis around date. (61)
|
65
|
+
* Fixed release and made package direcorty setting part of Project info. (60)
|
66
|
+
* Fixed reubyforge release so changelog and notelog were used. (59)
|
67
|
+
* Created NOTES for release notes. (58)
|
68
|
+
* Moved rubyforge.rb to systems directory. (57)
|
69
|
+
* Added manifest generation when packaging. (56)
|
70
|
+
* Continued improvments across the board. (55)
|
71
|
+
* Move scrap utils libs to new work/lib directory. (54)
|
72
|
+
* Added work/lib/reap/. (53)
|
73
|
+
* Added work/lib directory. (52)
|
74
|
+
* Added subversion system. (51)
|
75
|
+
* Moved ads to ads directory. (50)
|
76
|
+
|
77
|
+
== 2008-01-31 transami
|
78
|
+
|
79
|
+
* Moved MANIFEST and VERSION to toplevel. (49)
|
80
|
+
* Adjusted project file. (48)
|
81
|
+
* Added premature exits for task that arn't quite ready yet. (47)
|
82
|
+
* Moved setup.rb and install.rb to subdirectories. (46)
|
83
|
+
* Fleshed out skeleton directories in data/. (45)
|
84
|
+
* Require notes.rb changed to log.rb. (44)
|
85
|
+
* Renamed notes.rb to log.rb. (43)
|
86
|
+
* Update package and rdoc tasks to access configuration better. (42)
|
87
|
+
* Added spec tasks. (41)
|
88
|
+
* Update notes.rb for log tasks. Will rename. (40)
|
89
|
+
* Clean up tasks. (39)
|
90
|
+
* Update VERSION to 9.0.0 beta. (38)
|
91
|
+
* Added remaining binaries. (37)
|
92
|
+
* Okay, final naming organization of binaries. (36)
|
93
|
+
* Added doc/ads directory. (35)
|
94
|
+
* Fixed misspelling of syntax. (34)
|
95
|
+
* Moved reap-load and reap-sytax to reap-check-load and reap-check-syntax. (33)
|
96
|
+
* Renamed reap-gem to reap-install-gem (32)
|
97
|
+
* Cleaned make.rb code a bit. (31)
|
98
|
+
* Harmonized how options are merged. (30)
|
99
|
+
|
100
|
+
== 2008-01-29 transami
|
101
|
+
|
102
|
+
* Added make commands. (29)
|
103
|
+
|
104
|
+
== 2008-01-27 transami
|
105
|
+
|
106
|
+
* initial import (28)
|
107
|
+
|
data/log/FIXME.txt
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
|
2
|
+
= FIXME
|
3
|
+
|
4
|
+
file://lib/reap/manager/check.rb
|
5
|
+
* FIXME: This isn't routing output to dev/null as expected. (60)
|
6
|
+
|
7
|
+
file://lib/reap/manager/gem.rb
|
8
|
+
* FIXME (156)
|
9
|
+
|
10
|
+
file://lib/reap/manager/log.rb
|
11
|
+
* FIXME Should each label of note be written to it's own file? (22)
|
12
|
+
|
13
|
+
file://lib/reap/manager/pack.rb
|
14
|
+
* FIXME: will type, name and version always be right? (155)
|
15
|
+
* FIXME: will type, name and version always be right? (170)
|
16
|
+
* FIXME: Not yet ready for use. (129)
|
17
|
+
|
18
|
+
file://lib/reap/manager/prefab.rb
|
19
|
+
* FIXME: RubyGems has a new way to do this. Use that instead and fix Rolls to use it too. (97)
|
20
|
+
* FIXME: Make safer (currently this is not available) (66)
|
21
|
+
* FIXME: This doesn't yet work b/c reap doesn't work unless
|
22
|
+
a project file is already in place. (28)
|
23
|
+
|
24
|
+
file://lib/reap/utilities/setuputils.rb
|
25
|
+
* FIXME (60)
|