reap 9.2.1 → 9.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +4 -0
- data/COPYING +675 -674
- data/MANIFEST +37 -44
- data/NOTES +4 -4
- data/Rakefile +1486 -0
- data/data/reap/base/COPYING +674 -674
- data/data/reap/base/README +23 -2
- data/data/reap/base/Rakefile +1486 -0
- data/data/reap/base/test/template.rb +16 -0
- data/data/reap/init/meta/project.yaml +19 -14
- data/lib/reap/default.yaml +57 -45
- data/lib/reap/extensions/file.rb +8 -0
- data/lib/reap/extensions/net/smtp_tls.rb +108 -0
- data/lib/reap/extensions.rb +2 -0
- data/lib/reap/metadata.rb +3 -2
- data/lib/reap/{manager → project}/announce.rb +3 -3
- data/lib/reap/{manager → project}/check.rb +1 -1
- data/lib/reap/{manager → project}/clean.rb +1 -1
- data/lib/reap/{manager → project}/gem.rb +5 -5
- data/lib/reap/{manager → project}/html.rb +25 -24
- data/lib/reap/{manager → project}/log.rb +19 -9
- data/lib/reap/{manager → project}/make.rb +29 -36
- data/lib/reap/{manager → project}/package.rb +4 -8
- data/lib/reap/{manager → project}/publish.rb +3 -3
- data/lib/reap/{manager → project}/rdoc.rb +13 -30
- data/lib/reap/{manager → project}/release.rb +5 -5
- data/lib/reap/{manager → project}/rubyforge.rb +7 -6
- data/lib/reap/{manager → project}/scaffold.rb +7 -2
- data/lib/reap/{manager → project}/scm.rb +3 -3
- data/lib/reap/{manager → project}/site.rb +1 -1
- data/lib/reap/{manager → project}/spec.rb +1 -1
- data/lib/reap/{manager → project}/stamp.rb +14 -11
- data/lib/reap/{manager → project}/stats.rb +1 -1
- data/lib/reap/{manager → project}/svn.rb +1 -1
- data/lib/reap/{manager → project}/test.rb +2 -20
- data/lib/reap/project.rb +34 -2
- data/lib/reap/systems/rubyforge.rb +5 -12
- data/lib/reap/systems/subversion.rb +4 -6
- data/lib/reap/{utilities/fileutils.rb → utilities.rb} +148 -60
- data/log/Changelog.txt +118 -0
- data/log/Fixme.txt +26 -0
- data/log/Todo.txt +94 -0
- data/meta/VERSION +1 -1
- data/meta/project.yaml +1 -1
- data/meta/unixname +1 -0
- data/test/unit/lib/reap/extensions/test_array.rb +12 -0
- metadata +44 -46
- data/data/reap/build/rake/Rakefile +0 -130
- data/data/reap/build/rake/setup.rb +0 -1616
- data/data/reap/build/rake-lite/install.rb +0 -79
- data/data/reap/build/tasks/task/rdoc +0 -211
- data/data/reap/build/tasks/task/setup +0 -1616
- data/data/reap/build/tasks/task/test +0 -38
- data/lib/reap/manager.rb +0 -75
- data/lib/reap/utilities/netutils.rb +0 -221
- data/lib/reap/utilities/setuputils.rb +0 -124
- data/lib/reap/utilities/shellutils.rb +0 -175
- data/log/FIXME.txt +0 -25
- data/log/TODO.txt +0 -72
- data/task/man +0 -14
- data/task/rdoc +0 -20
- data/task/setup +0 -1616
@@ -1,38 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# Run unit tests
|
4
|
-
|
5
|
-
def test
|
6
|
-
live = ARGV.include?('--live')
|
7
|
-
|
8
|
-
unless live
|
9
|
-
$LOAD_PATH.unshift(File.expand_path('lib/core'))
|
10
|
-
$LOAD_PATH.unshift(File.expand_path('lib/more'))
|
11
|
-
end
|
12
|
-
|
13
|
-
puts "Ruby Version: #{RUBY_VERSION}"
|
14
|
-
|
15
|
-
if find = ARGV.select{|e| e !~ /^[-]/ }[0]
|
16
|
-
unless file?(find)
|
17
|
-
find = File.join(find, '**', 'test_*.rb')
|
18
|
-
end
|
19
|
-
else
|
20
|
-
find = 'test/**/test_*.rb'
|
21
|
-
end
|
22
|
-
|
23
|
-
files = Dir.glob(find)
|
24
|
-
files.each do |file|
|
25
|
-
next if File.directory?(file)
|
26
|
-
begin
|
27
|
-
puts "Loading: #{file}" if $DEBUG
|
28
|
-
load(file)
|
29
|
-
rescue LoadError
|
30
|
-
puts "Error loading: #{file}"
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# Go!
|
36
|
-
if $0 == __FILE__
|
37
|
-
test
|
38
|
-
end
|
data/lib/reap/manager.rb
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
require 'rbconfig' # replace with facets/system?
|
3
|
-
|
4
|
-
require 'reap/extensions'
|
5
|
-
require 'reap/utilities/fileutils'
|
6
|
-
require 'reap/utilities/shellutils'
|
7
|
-
require 'reap/utilities/netutils'
|
8
|
-
|
9
|
-
module Reap
|
10
|
-
|
11
|
-
class Manager
|
12
|
-
# Default constant is used my various tools
|
13
|
-
# to soter the defualts for options. By using this
|
14
|
-
# it easy to dump a complete list of built-in
|
15
|
-
# defaults. Defaults should be patterned after the
|
16
|
-
# configuration file agsint which they will be used.
|
17
|
-
|
18
|
-
DEFAULT = {}
|
19
|
-
|
20
|
-
include Utilities::ShellUtils
|
21
|
-
include Utilities::FileUtils
|
22
|
-
include Utilities::NetUtils
|
23
|
-
end
|
24
|
-
|
25
|
-
#class Project < Manager; end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
# Load up all the tools
|
30
|
-
require "reap/manager/announce.rb"
|
31
|
-
require "reap/manager/check.rb"
|
32
|
-
require "reap/manager/clean.rb"
|
33
|
-
require "reap/manager/gem.rb"
|
34
|
-
require "reap/manager/html.rb"
|
35
|
-
require "reap/manager/log.rb"
|
36
|
-
require "reap/manager/make.rb"
|
37
|
-
require "reap/manager/package.rb"
|
38
|
-
require "reap/manager/publish.rb"
|
39
|
-
require "reap/manager/rdoc.rb"
|
40
|
-
require "reap/manager/release.rb"
|
41
|
-
require "reap/manager/scaffold.rb"
|
42
|
-
require "reap/manager/site.rb"
|
43
|
-
require "reap/manager/spec.rb"
|
44
|
-
require "reap/manager/stats.rb"
|
45
|
-
require "reap/manager/stamp.rb"
|
46
|
-
require "reap/manager/scm.rb"
|
47
|
-
require "reap/manager/svn.rb"
|
48
|
-
require "reap/manager/test.rb"
|
49
|
-
|
50
|
-
|
51
|
-
#def html
|
52
|
-
# config = configuration['rd2html']
|
53
|
-
# webmaker = RD2Html.new(config)
|
54
|
-
# webmaker.rd2html
|
55
|
-
#end
|
56
|
-
|
57
|
-
# Update release "stamp" (.roll) file.
|
58
|
-
|
59
|
-
#def stamp
|
60
|
-
# # You can change these via the command line.
|
61
|
-
# version = commandline['version'] || release.version
|
62
|
-
# status = commandline['status'] || release.status
|
63
|
-
#
|
64
|
-
# if version != release.version or status != release.status
|
65
|
-
# Stamp.new(
|
66
|
-
# :version => version,
|
67
|
-
# :status => status,
|
68
|
-
# :file => release.file,
|
69
|
-
# :name => release.name,
|
70
|
-
# :default => release.default,
|
71
|
-
# :libpath => release.libpath
|
72
|
-
# ).stamp
|
73
|
-
# end
|
74
|
-
#end
|
75
|
-
|
@@ -1,221 +0,0 @@
|
|
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
|
@@ -1,124 +0,0 @@
|
|
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
|
@@ -1,175 +0,0 @@
|
|
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/FIXME.txt
DELETED
@@ -1,25 +0,0 @@
|
|
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)
|