reap 6.0.2 → 9.2.0
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/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)
|