reap 5.10.10 → 6.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +400 -8
- data/README +136 -75
- data/bin/reap +2 -2
- data/bin/rubytest +5 -0
- data/data/reap/scaffold/standard/COPYING +403 -0
- data/data/reap/scaffold/{ChangeLog → standard/ChangeLog} +0 -0
- data/data/reap/scaffold/standard/INSTALL +14 -0
- data/data/reap/scaffold/{ProjectInfo → standard/ProjectInfo} +23 -24
- data/data/reap/scaffold/standard/README +3 -0
- data/data/reap/scaffold/standard/Rakefile +10 -0
- data/{Rakefile → data/reap/scaffold/standard/TODO} +0 -0
- data/data/reap/scaffold/{setup.rb → standard/setup.rb} +287 -270
- data/data/reap/scaffold/subversion/trunk/COPYING +403 -0
- data/data/reap/scaffold/{INSTALL → subversion/trunk/ChangeLog} +0 -0
- data/data/reap/scaffold/subversion/trunk/INSTALL +14 -0
- data/data/reap/scaffold/subversion/trunk/ProjectInfo +76 -0
- data/data/reap/scaffold/subversion/trunk/README +3 -0
- data/data/reap/scaffold/subversion/trunk/Rakefile +10 -0
- data/data/reap/scaffold/{README → subversion/trunk/TODO} +0 -0
- data/data/reap/scaffold/subversion/trunk/setup.rb +1568 -0
- data/data/reap/setup.rb +1568 -0
- data/lib/reap/bin/reap.rb +176 -80
- data/lib/reap/bin/rubytest.rb +53 -0
- data/lib/reap/class/announce.rb +220 -0
- data/lib/reap/class/doap.rb +80 -0
- data/lib/reap/class/extest.rb +151 -0
- data/lib/reap/class/filer.rb +62 -0
- data/lib/reap/class/installer.rb +178 -0
- data/lib/reap/class/manifest.rb +72 -0
- data/lib/reap/class/package.rb +468 -0
- data/lib/reap/class/publish.rb +152 -0
- data/lib/reap/class/rdoc.rb +131 -0
- data/lib/reap/class/test.rb +269 -0
- data/lib/reap/projectinfo.rb +187 -30
- data/lib/reap/rake.rb +42 -0
- data/lib/reap/reap.rb +89 -0
- data/lib/reap/tasks.rb +672 -11
- data/lib/reap/taskutils.rb +122 -0
- data/sample/ProjectInfo +96 -0
- data/sample/Rakefile +9 -0
- data/sample/Reapfile +11 -0
- data/sample/task/demo.rb +15 -0
- data/setup.rb +287 -272
- metadata +99 -257
- data/ANN +0 -3
- data/ChangeLog +0 -25
- data/ProjectInfo +0 -65
- data/data/reap/scaffold/COPYING +0 -11
- data/data/reap/scaffold/Rakefile +0 -146
- data/data/reap/scaffold/Todo +0 -0
- data/dev/Rakefile +0 -60
- data/dev/composite_task.rb +0 -27
- data/dev/compositepublisher.rb +0 -24
- data/dev/ftptools.rb +0 -139
- data/dev/license-each.rb +0 -85
- data/dev/publisher.rb +0 -75
- data/dev/rubyforgepublisher.rb +0 -18
- data/dev/sshpublisher.rb +0 -47
- data/dev/suby-cvs.rb +0 -46
- data/dev/template.rb +0 -72
- data/lib/reap/lint.rb +0 -0
- data/lib/reap/readymade.rb +0 -21
- data/lib/reap/task.rb +0 -187
- data/lib/reap/task/announce.rb +0 -156
- data/lib/reap/task/fileperm.rb +0 -82
- data/lib/reap/task/info.rb +0 -20
- data/lib/reap/task/install.rb +0 -33
- data/lib/reap/task/noop.rb +0 -26
- data/lib/reap/task/package.rb +0 -204
- data/lib/reap/task/publish.rb +0 -49
- data/lib/reap/task/rdoc.rb +0 -82
- data/lib/reap/task/scaffold.rb +0 -114
- data/lib/reap/task/test.rb +0 -186
- data/lib/reap/task/testext.rb +0 -110
- data/lib/reap/task/webpublish.rb +0 -43
- data/lib/reap/test.rb +0 -138
- data/test/tc_reap.rb +0 -11
- data/web/ProjectInfo +0 -57
- data/web/images/appleboy.jpg +0 -0
- data/web/images/grape.jpg +0 -0
- data/web/index.html +0 -124
- data/web/rdoc/classes/Object.html +0 -121
- data/web/rdoc/classes/ProjectInfo.html +0 -207
- data/web/rdoc/classes/ProjectInfo.src/M000094.html +0 -18
- data/web/rdoc/classes/ProjectInfo.src/M000095.html +0 -24
- data/web/rdoc/classes/ProjectInfo.src/M000096.html +0 -22
- data/web/rdoc/classes/ProjectInfo.src/M000097.html +0 -21
- data/web/rdoc/classes/ProjectInfo.src/M000098.html +0 -18
- data/web/rdoc/classes/Reap.html +0 -248
- data/web/rdoc/classes/Reap.src/M000023.html +0 -16
- data/web/rdoc/classes/Reap.src/M000024.html +0 -21
- data/web/rdoc/classes/Reap.src/M000025.html +0 -16
- data/web/rdoc/classes/Reap.src/M000026.html +0 -21
- data/web/rdoc/classes/Reap/Announce.html +0 -262
- data/web/rdoc/classes/Reap/Announce.src/M000030.html +0 -18
- data/web/rdoc/classes/Reap/Announce.src/M000031.html +0 -114
- data/web/rdoc/classes/Reap/Announce.src/M000032.html +0 -46
- data/web/rdoc/classes/Reap/Info.html +0 -176
- data/web/rdoc/classes/Reap/Info.src/M000033.html +0 -18
- data/web/rdoc/classes/Reap/Info.src/M000034.html +0 -17
- data/web/rdoc/classes/Reap/Info.src/M000035.html +0 -18
- data/web/rdoc/classes/Reap/Install.html +0 -193
- data/web/rdoc/classes/Reap/Install.src/M000036.html +0 -18
- data/web/rdoc/classes/Reap/Install.src/M000037.html +0 -20
- data/web/rdoc/classes/Reap/Install.src/M000038.html +0 -26
- data/web/rdoc/classes/Reap/Noop.html +0 -192
- data/web/rdoc/classes/Reap/Noop.src/M000027.html +0 -18
- data/web/rdoc/classes/Reap/Noop.src/M000028.html +0 -17
- data/web/rdoc/classes/Reap/Noop.src/M000029.html +0 -18
- data/web/rdoc/classes/Reap/Package.html +0 -310
- data/web/rdoc/classes/Reap/Package.src/M000055.html +0 -18
- data/web/rdoc/classes/Reap/Package.src/M000056.html +0 -68
- data/web/rdoc/classes/Reap/Package.src/M000057.html +0 -84
- data/web/rdoc/classes/Reap/Package.src/M000058.html +0 -61
- data/web/rdoc/classes/Reap/Perm.html +0 -236
- data/web/rdoc/classes/Reap/Perm.src/M000078.html +0 -18
- data/web/rdoc/classes/Reap/Perm.src/M000079.html +0 -21
- data/web/rdoc/classes/Reap/Perm.src/M000080.html +0 -42
- data/web/rdoc/classes/Reap/Perm.src/M000081.html +0 -26
- data/web/rdoc/classes/Reap/Perm.src/M000082.html +0 -18
- data/web/rdoc/classes/Reap/Publish.html +0 -213
- data/web/rdoc/classes/Reap/Publish.src/M000070.html +0 -18
- data/web/rdoc/classes/Reap/Publish.src/M000071.html +0 -22
- data/web/rdoc/classes/Reap/Publish.src/M000072.html +0 -37
- data/web/rdoc/classes/Reap/RDoc.html +0 -218
- data/web/rdoc/classes/Reap/RDoc.src/M000059.html +0 -18
- data/web/rdoc/classes/Reap/RDoc.src/M000060.html +0 -24
- data/web/rdoc/classes/Reap/RDoc.src/M000061.html +0 -70
- data/web/rdoc/classes/Reap/Task.html +0 -396
- data/web/rdoc/classes/Reap/Task.src/M000039.html +0 -18
- data/web/rdoc/classes/Reap/Task.src/M000040.html +0 -16
- data/web/rdoc/classes/Reap/Task.src/M000041.html +0 -16
- data/web/rdoc/classes/Reap/Task.src/M000042.html +0 -16
- data/web/rdoc/classes/Reap/Task.src/M000043.html +0 -16
- data/web/rdoc/classes/Reap/Task.src/M000044.html +0 -22
- data/web/rdoc/classes/Reap/Task.src/M000045.html +0 -16
- data/web/rdoc/classes/Reap/Task.src/M000046.html +0 -16
- data/web/rdoc/classes/Reap/Task.src/M000047.html +0 -16
- data/web/rdoc/classes/Reap/Task.src/M000048.html +0 -16
- data/web/rdoc/classes/Reap/Task.src/M000049.html +0 -16
- data/web/rdoc/classes/Reap/Task.src/M000050.html +0 -27
- data/web/rdoc/classes/Reap/Task.src/M000051.html +0 -19
- data/web/rdoc/classes/Reap/Task.src/M000052.html +0 -18
- data/web/rdoc/classes/Reap/Task.src/M000053.html +0 -18
- data/web/rdoc/classes/Reap/Task.src/M000054.html +0 -19
- data/web/rdoc/classes/Reap/Test.html +0 -253
- data/web/rdoc/classes/Reap/Test.src/M000062.html +0 -18
- data/web/rdoc/classes/Reap/Test.src/M000063.html +0 -26
- data/web/rdoc/classes/Reap/Test.src/M000064.html +0 -77
- data/web/rdoc/classes/Reap/Test.src/M000065.html +0 -27
- data/web/rdoc/classes/Reap/Test.src/M000066.html +0 -50
- data/web/rdoc/classes/Reap/Test/TestResults.html +0 -205
- data/web/rdoc/classes/Reap/Test/TestResults.src/M000067.html +0 -21
- data/web/rdoc/classes/Reap/Test/TestResults.src/M000068.html +0 -21
- data/web/rdoc/classes/Reap/Test/TestResults.src/M000069.html +0 -23
- data/web/rdoc/classes/Reap/TestExt.html +0 -234
- data/web/rdoc/classes/Reap/TestExt.src/M000073.html +0 -18
- data/web/rdoc/classes/Reap/TestExt.src/M000074.html +0 -20
- data/web/rdoc/classes/Reap/TestExt.src/M000075.html +0 -49
- data/web/rdoc/classes/Reap/TestExt.src/M000076.html +0 -34
- data/web/rdoc/classes/Reap/TestExt.src/M000077.html +0 -27
- data/web/rdoc/classes/Reap/WebPublish.html +0 -213
- data/web/rdoc/classes/Reap/WebPublish.src/M000083.html +0 -18
- data/web/rdoc/classes/Reap/WebPublish.src/M000084.html +0 -21
- data/web/rdoc/classes/Reap/WebPublish.src/M000085.html +0 -32
- data/web/rdoc/classes/ReapCommand.html +0 -425
- data/web/rdoc/classes/ReapCommand.src/M000001.html +0 -16
- data/web/rdoc/classes/ReapCommand.src/M000003.html +0 -16
- data/web/rdoc/classes/ReapCommand.src/M000005.html +0 -16
- data/web/rdoc/classes/ReapCommand.src/M000007.html +0 -16
- data/web/rdoc/classes/ReapCommand.src/M000009.html +0 -16
- data/web/rdoc/classes/ReapCommand.src/M000011.html +0 -16
- data/web/rdoc/classes/ReapCommand.src/M000013.html +0 -18
- data/web/rdoc/classes/ReapCommand.src/M000014.html +0 -19
- data/web/rdoc/classes/ReapCommand.src/M000015.html +0 -19
- data/web/rdoc/classes/ReapCommand.src/M000016.html +0 -24
- data/web/rdoc/classes/ReapCommand.src/M000018.html +0 -29
- data/web/rdoc/classes/Scaffold.html +0 -211
- data/web/rdoc/classes/Scaffold.src/M000086.html +0 -16
- data/web/rdoc/classes/Scaffold.src/M000087.html +0 -28
- data/web/rdoc/classes/Scaffold.src/M000088.html +0 -32
- data/web/rdoc/classes/Scaffold.src/M000089.html +0 -18
- data/web/rdoc/classes/UnitTestKernel.html +0 -176
- data/web/rdoc/classes/UnitTestKernel.src/M000019.html +0 -18
- data/web/rdoc/classes/UnitTestKernel.src/M000020.html +0 -18
- data/web/rdoc/classes/UnitTestKernel.src/M000021.html +0 -22
- data/web/rdoc/classes/UnitTestKernel.src/M000022.html +0 -22
- data/web/rdoc/classes/UnitTesting.html +0 -165
- data/web/rdoc/classes/UnitTesting.src/M000090.html +0 -34
- data/web/rdoc/classes/UnitTesting.src/M000091.html +0 -18
- data/web/rdoc/classes/UnitTesting/Failure.html +0 -156
- data/web/rdoc/classes/UnitTesting/Failure.src/M000092.html +0 -18
- data/web/rdoc/classes/UnitTesting/Failure.src/M000093.html +0 -21
- data/web/rdoc/created.rid +0 -1
- data/web/rdoc/files/ANN.html +0 -107
- data/web/rdoc/files/COPYING.html +0 -119
- data/web/rdoc/files/ChangeLog.html +0 -144
- data/web/rdoc/files/ProjectInfo.html +0 -190
- data/web/rdoc/files/README.html +0 -274
- data/web/rdoc/files/Rakefile.html +0 -101
- data/web/rdoc/files/lib/reap/bin/reap_rb.html +0 -129
- data/web/rdoc/files/lib/reap/lint_rb.html +0 -101
- data/web/rdoc/files/lib/reap/projectinfo_rb.html +0 -110
- data/web/rdoc/files/lib/reap/readymade_rb.html +0 -123
- data/web/rdoc/files/lib/reap/task/announce_rb.html +0 -114
- data/web/rdoc/files/lib/reap/task/fileperm_rb.html +0 -108
- data/web/rdoc/files/lib/reap/task/info_rb.html +0 -108
- data/web/rdoc/files/lib/reap/task/install_rb.html +0 -108
- data/web/rdoc/files/lib/reap/task/noop_rb.html +0 -108
- data/web/rdoc/files/lib/reap/task/package_rb.html +0 -109
- data/web/rdoc/files/lib/reap/task/publish_rb.html +0 -108
- data/web/rdoc/files/lib/reap/task/rdoc_rb.html +0 -108
- data/web/rdoc/files/lib/reap/task/scaffold_rb.html +0 -107
- data/web/rdoc/files/lib/reap/task/test_rb.html +0 -110
- data/web/rdoc/files/lib/reap/task/testext_rb.html +0 -109
- data/web/rdoc/files/lib/reap/task/webpublish_rb.html +0 -108
- data/web/rdoc/files/lib/reap/task_rb.html +0 -120
- data/web/rdoc/files/lib/reap/tasks_rb.html +0 -116
- data/web/rdoc/files/lib/reap/test_rb.html +0 -109
- data/web/rdoc/fr_class_index.html +0 -47
- data/web/rdoc/fr_file_index.html +0 -51
- data/web/rdoc/fr_method_index.html +0 -124
- data/web/rdoc/index.html +0 -24
- data/web/rdoc/rdoc-style.css +0 -208
data/lib/reap/task/announce.rb
DELETED
@@ -1,156 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'reap/task'
|
3
|
-
|
4
|
-
require 'net/smtp'
|
5
|
-
require 'facet/string/margin'
|
6
|
-
require 'facet/string/tab'
|
7
|
-
require 'facet/string/align_center'
|
8
|
-
require 'facet/string/fold'
|
9
|
-
require 'facet/string/word_wrap'
|
10
|
-
|
11
|
-
class Reap::Announce < Reap::Task
|
12
|
-
|
13
|
-
section_required true
|
14
|
-
|
15
|
-
def task_desc
|
16
|
-
"Send announcement email to ruby-talk or other address."
|
17
|
-
end
|
18
|
-
|
19
|
-
attr_accessor :title, :version, :summary, :description, :subject
|
20
|
-
attr_accessor :to, :from, :server, :port, :domain, :account
|
21
|
-
attr_accessor :authtype, :sectype
|
22
|
-
attr_accessor :links, :slogan, :memo, :file
|
23
|
-
|
24
|
-
def init
|
25
|
-
@to = (@to || 'ruby-talk@ruby-lang.org').to_s.strip
|
26
|
-
@from = (@from || master['email']).to_s.strip
|
27
|
-
@server = @server.to_s.strip
|
28
|
-
@port = (@port || 25).to_i
|
29
|
-
@domain = @domain.to_s.strip if @domain
|
30
|
-
@account = @account.to_s.strip
|
31
|
-
@authtype = (@authtype || 'plain').to_s.strip #cram_md5 #plain #login
|
32
|
-
#@sectype = @sectype
|
33
|
-
|
34
|
-
raise "server is a require announce field" if @server.empty?
|
35
|
-
raise "account is a require announce field" if @account.empty?
|
36
|
-
|
37
|
-
@title ||= master['title']
|
38
|
-
@version ||= master['version']
|
39
|
-
@summary ||= master['summary']
|
40
|
-
@description ||= master['description']
|
41
|
-
@links ||= []
|
42
|
-
@subject ||= "[ANN] #{@title}, v#{@version}"
|
43
|
-
|
44
|
-
@address = @to # TODO
|
45
|
-
|
46
|
-
#raise "DOMAIN is a required field" if @domain.empty?
|
47
|
-
|
48
|
-
# header
|
49
|
-
announce = %Q{
|
50
|
-
|
|
51
|
-
|A N N O U N C I N G
|
52
|
-
|
|
53
|
-
|#{title}, v#{version}
|
54
|
-
|
|
55
|
-
|#{summary}
|
56
|
-
|
|
57
|
-
}.margin.align_center(66)
|
58
|
-
|
59
|
-
# abstract
|
60
|
-
abstract = ''
|
61
|
-
if @description
|
62
|
-
abstract << "\n\n"
|
63
|
-
abstract << "ABSTRACT: #{@description}".word_wrap(72)
|
64
|
-
abstract << "\n"
|
65
|
-
end
|
66
|
-
|
67
|
-
# more info
|
68
|
-
info = ''
|
69
|
-
unless @links.empty?
|
70
|
-
info << "\n"
|
71
|
-
info << "For More Information".center(67)
|
72
|
-
info << "\n"
|
73
|
-
@links.each{ |mi| info << "#{mi}".center(67) << "\n" }
|
74
|
-
info << "\n"
|
75
|
-
end
|
76
|
-
|
77
|
-
# slogan
|
78
|
-
slogan = ''
|
79
|
-
if @slogan
|
80
|
-
slogan << "\n\n"
|
81
|
-
slogan << @slogan.center(67)
|
82
|
-
slogan << "\n\n"
|
83
|
-
end
|
84
|
-
|
85
|
-
# memo
|
86
|
-
memo = ''
|
87
|
-
if @memo
|
88
|
-
memo = ''
|
89
|
-
memo << "\n" << ('-' * 72) << "\n"
|
90
|
-
memo << "(Memo)\n\n"
|
91
|
-
memo << @memo.fold.word_wrap(72)
|
92
|
-
#memo << "\n"
|
93
|
-
end
|
94
|
-
|
95
|
-
# msg file
|
96
|
-
msg = ''
|
97
|
-
if @file and File.file?( @file )
|
98
|
-
msg << "\n" << ("-" * 72) << "\n"
|
99
|
-
msg << "(from #{@file})\n\n"
|
100
|
-
mg = ''
|
101
|
-
File.open( @file ) { |f| mg << f.gets(nil) }
|
102
|
-
msg << mg.fold.word_wrap(72)
|
103
|
-
end
|
104
|
-
|
105
|
-
# stamp
|
106
|
-
stamp = ''
|
107
|
-
stamp << "\n" << ("-" * 72) << "\n"
|
108
|
-
stamp << %Q{
|
109
|
-
|Generated by Reap, a Rake-based Ruby Project Assistant.
|
110
|
-
|Do you Ruby? (http://www.ruby-lang.org)
|
111
|
-
}.margin
|
112
|
-
stamp << "\n\n"
|
113
|
-
|
114
|
-
@message = ''
|
115
|
-
@message << announce
|
116
|
-
@message << abstract
|
117
|
-
@message << info
|
118
|
-
@message << slogan
|
119
|
-
@message << memo
|
120
|
-
@message << msg
|
121
|
-
@message << stamp
|
122
|
-
end
|
123
|
-
|
124
|
-
def run
|
125
|
-
puts "\n#{@message}\n\n"
|
126
|
-
print "Send? [Y/n] "
|
127
|
-
until inp = $stdin.gets[0,1] ; sleep 1 ; end
|
128
|
-
if (inp || 'y').downcase == 'y'
|
129
|
-
# ask for password
|
130
|
-
print "Password for #{@account}: "
|
131
|
-
until passwd = $stdin.gets.strip ; sleep 1 ; end
|
132
|
-
mail = %Q{
|
133
|
-
|From: #{@from}
|
134
|
-
|To: #{@address}
|
135
|
-
|Subject: #{@subject}
|
136
|
-
|
|
137
|
-
|#{@message}
|
138
|
-
}.margin
|
139
|
-
begin
|
140
|
-
# --- Send using SMTP object and an adaptor
|
141
|
-
Net::SMTP.enable_tls if Net::SMTP.respond_to?(:enable_tls) and @tls
|
142
|
-
Net::SMTP.start(@server, @port, @domain, @account, passwd, @authtype) do |s|
|
143
|
-
s.send_message mail, @from, @address
|
144
|
-
end
|
145
|
-
puts "Email sent successfully to #{@address}."
|
146
|
-
rescue => e
|
147
|
-
puts "Email delivery failed."
|
148
|
-
puts e
|
149
|
-
end
|
150
|
-
else
|
151
|
-
puts "Reap announce task canceled."
|
152
|
-
exit 0
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
end
|
data/lib/reap/task/fileperm.rb
DELETED
@@ -1,82 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'reap/task'
|
3
|
-
|
4
|
-
#
|
5
|
-
# File Permissions Task
|
6
|
-
#
|
7
|
-
class Reap::Perm < Reap::Task
|
8
|
-
|
9
|
-
attr_accessor :user, :group, :filemod, :dirmod
|
10
|
-
|
11
|
-
section_required true
|
12
|
-
|
13
|
-
def task_desc
|
14
|
-
"Normalize ownership and permissions of package files."
|
15
|
-
end
|
16
|
-
|
17
|
-
def init
|
18
|
-
@user = section['user']
|
19
|
-
@group ||= @user
|
20
|
-
@filemod ||= 644
|
21
|
-
@dirmod ||= 755
|
22
|
-
end
|
23
|
-
|
24
|
-
def run
|
25
|
-
puts "Reap is shelling out work to chmod..."
|
26
|
-
|
27
|
-
# misc
|
28
|
-
misc = FileList.new
|
29
|
-
misc.include('[A-Z]*')
|
30
|
-
misc.exclude('InstalledFiles')
|
31
|
-
chmod( misc ) unless misc.empty?
|
32
|
-
|
33
|
-
# lib
|
34
|
-
libs = FileList.new
|
35
|
-
libs.include('lib/**/*')
|
36
|
-
libs.exclude('lib/CVS/**/*')
|
37
|
-
libs.include('packages/*/lib/**/*')
|
38
|
-
libs.exclude('packages/*/lib/CVS/**/*')
|
39
|
-
libs.exclude('packages/CVS/**/*')
|
40
|
-
chmod( libs ) unless libs.empty?
|
41
|
-
|
42
|
-
# bin
|
43
|
-
bins = FileList.new
|
44
|
-
bins.include('bin/**/*')
|
45
|
-
bins.exclude('bin/CVS/**/*')
|
46
|
-
bins.include('packages/*/bin/**/*')
|
47
|
-
bins.exclude('packages/*/bin/CVS/**/*')
|
48
|
-
bins.exclude('packages/CVS/**/*')
|
49
|
-
chmod( bins, 755 ) unless bins.empty?
|
50
|
-
end
|
51
|
-
|
52
|
-
# support functions
|
53
|
-
|
54
|
-
def chmod( file_list, file_mode=644, dir_mode=755 )
|
55
|
-
dirs, files = file_list.partition{ |l| File.directory?(l) }
|
56
|
-
unless files.empty?
|
57
|
-
fstr = '"' + files.join('" "') + '"'
|
58
|
-
sh %{chmod #{file_mode} #{fstr}}
|
59
|
-
end
|
60
|
-
unless dirs.empty?
|
61
|
-
fstr = '"' + dirs.join('" "') + '"'
|
62
|
-
sh %{chmod #{dir_mode} #{fstr}}
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
def run_chown
|
67
|
-
puts "NOT YET IMPLEMENTED"
|
68
|
-
end
|
69
|
-
# def _chown( file_list, user, group )
|
70
|
-
# fstr = '"' + file_list.join('" "') + '"'
|
71
|
-
# if user
|
72
|
-
# if group
|
73
|
-
# sh %{chown #{user}.#{group} #{fstr}}
|
74
|
-
# else
|
75
|
-
# sh %{chown #{user} #{fstr}}
|
76
|
-
# end
|
77
|
-
# end
|
78
|
-
# end
|
79
|
-
|
80
|
-
end
|
81
|
-
|
82
|
-
#Reap.register( Reap::Perm )
|
data/lib/reap/task/info.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'reap/task'
|
3
|
-
|
4
|
-
#
|
5
|
-
# Info Task - Displays the ProjectInfo file.
|
6
|
-
#
|
7
|
-
class Reap::Info < Reap::Task
|
8
|
-
|
9
|
-
def task_desc
|
10
|
-
"Display ProjectInfo file."
|
11
|
-
end
|
12
|
-
|
13
|
-
def init
|
14
|
-
end
|
15
|
-
|
16
|
-
def run
|
17
|
-
puts ProjectInfo.info_stream
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
data/lib/reap/task/install.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'reap/task'
|
3
|
-
|
4
|
-
#
|
5
|
-
# Install Task
|
6
|
-
#
|
7
|
-
class Reap::Install < Reap::Task
|
8
|
-
|
9
|
-
def task_desc
|
10
|
-
"Locally install package using setup.rb or install.rb."
|
11
|
-
end
|
12
|
-
|
13
|
-
attr_accessor :options, :quiet #, :sudo
|
14
|
-
|
15
|
-
def init
|
16
|
-
@quiet ||= !$VERBOSE
|
17
|
-
@options ||= []
|
18
|
-
#@sudo ||= true
|
19
|
-
end
|
20
|
-
|
21
|
-
def run
|
22
|
-
exe = %w{ setup.rb install.rb }.find{ |f| File.exists?(f) }
|
23
|
-
raise "setup.rb or install.rb not found" if exe == nil
|
24
|
-
|
25
|
-
puts "Reap is shelling out work to #{exe}..."
|
26
|
-
|
27
|
-
options << '-q' if @quiet
|
28
|
-
|
29
|
-
c = "sudo ruby #{exe} #{options.join(' ')}"
|
30
|
-
sh c
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
data/lib/reap/task/noop.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'reap/task'
|
3
|
-
|
4
|
-
#
|
5
|
-
# Noop Task
|
6
|
-
#
|
7
|
-
# This task doesn't do anything except
|
8
|
-
# display a message. It is used simply
|
9
|
-
# for test purposes when debugging Reap.
|
10
|
-
#
|
11
|
-
class Reap::Noop < Reap::Task
|
12
|
-
|
13
|
-
def task_desc
|
14
|
-
"A no-op task to help debug reap itself."
|
15
|
-
end
|
16
|
-
|
17
|
-
attr_accessor :message
|
18
|
-
|
19
|
-
def init
|
20
|
-
end
|
21
|
-
|
22
|
-
def run
|
23
|
-
puts ( message || 'No message field in noop section.' )
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
data/lib/reap/task/package.rb
DELETED
@@ -1,204 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'reap/task'
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'rubygems'
|
6
|
-
rescue
|
7
|
-
# no rubygems
|
8
|
-
end
|
9
|
-
|
10
|
-
##
|
11
|
-
# Package Task
|
12
|
-
#
|
13
|
-
# This task creates standard .zip, .tgz, or .tbz
|
14
|
-
# packages, plus .gem distributions.
|
15
|
-
#
|
16
|
-
class Reap::Package < Reap::Task
|
17
|
-
|
18
|
-
attr_accessor :dir, :name, :date, :series, :status,
|
19
|
-
:author, :email, :summary, :project, :homepage,
|
20
|
-
:exclude, :types, :platform, :autorequire,
|
21
|
-
:dependencies, :requirements, :executables
|
22
|
-
|
23
|
-
attr_reader :package_name, :include
|
24
|
-
|
25
|
-
MUST_EXCLUDE = [ 'InstalledFiles', '**/CVS/**/*', '**/*~' ]
|
26
|
-
|
27
|
-
def task_desc
|
28
|
-
"Build distribution packages (#{(types||[]).join(', ')})."
|
29
|
-
end
|
30
|
-
|
31
|
-
def init
|
32
|
-
@dir ||= ( File.directory?('../leaf') ? '../leaf' : 'pkg')
|
33
|
-
|
34
|
-
@name ||= master['name']
|
35
|
-
@status ||= master['status'] || 'beta/stable'
|
36
|
-
@date ||= master['date'] || Time.now.strftime("%Y-%m-%d")
|
37
|
-
|
38
|
-
@series ||= master['series']
|
39
|
-
@version ||= master['version']
|
40
|
-
|
41
|
-
unless @series || @version
|
42
|
-
puts "Series or Version is a required field."
|
43
|
-
exit 0
|
44
|
-
end
|
45
|
-
|
46
|
-
if @version
|
47
|
-
@package_name ||= @name + '-' + @version
|
48
|
-
else
|
49
|
-
@package_name ||= @name + ',' + @date
|
50
|
-
end
|
51
|
-
|
52
|
-
@author ||= master['author']
|
53
|
-
@email ||= master['email']
|
54
|
-
@summary ||= master['summary']
|
55
|
-
@project ||= master['rubyforge']['project']
|
56
|
-
@homepage ||= master['homepage'] || master['rubyforge']['homepage']
|
57
|
-
|
58
|
-
@exclude ||= []
|
59
|
-
@exclude |= MUST_EXCLUDE
|
60
|
-
|
61
|
-
# types include 'tgz', 'tbz', 'zip', 'tar.gz' 'tar.bz2' and 'gem'.
|
62
|
-
@types ||= master['distribute'] || [ 'gem', 'tar.gz', 'zip' ]
|
63
|
-
@types.collect! { |t| t.to_s.strip.downcase }
|
64
|
-
|
65
|
-
# not setable
|
66
|
-
@include ||= ['**/*']
|
67
|
-
|
68
|
-
# gem specific (at least in this context)
|
69
|
-
if defined?(Gem)
|
70
|
-
if @platform
|
71
|
-
begin
|
72
|
-
@gem_platform = ::Gem.const_get(@platform)
|
73
|
-
rescue NameError
|
74
|
-
@platform = nil
|
75
|
-
end
|
76
|
-
end
|
77
|
-
@platform = ::Gem::Platform::RUBY unless @plaform
|
78
|
-
#@autorequire
|
79
|
-
@requirements ||= master['requirements'] || []
|
80
|
-
@dependencies ||= master['dependencies'] || []
|
81
|
-
@executables ||= master['executables'] || []
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
def run
|
86
|
-
# create package image
|
87
|
-
package_dir_path = "#{@dir}/#{@package_name}"
|
88
|
-
|
89
|
-
if FileTest.directory?(package_dir_path)
|
90
|
-
print "Package '#{package_name}' already exists. Clobber? [y/N] "
|
91
|
-
until inp = $stdin.gets[0,1] ; sleep 1 ; end
|
92
|
-
if (inp || 'y').downcase == 'y'
|
93
|
-
puts "Removing old directory '#{File.expand_path(package_dir_path)}'..."
|
94
|
-
FileUtils.rm_r(package_dir_path)
|
95
|
-
#FileUtils.rm("#{package_dir_path}/*")
|
96
|
-
#trash_dir = ".trash/#{File.basename(@dir)}"
|
97
|
-
#FileUtils.mkdir_p(".trash") unless FileTest.directory?(".trash")
|
98
|
-
#FileUtils.mv(@dir, trash_dir)
|
99
|
-
else
|
100
|
-
puts "Reap package task canceled."
|
101
|
-
exit 0
|
102
|
-
end
|
103
|
-
end
|
104
|
-
package_files = FileList.new
|
105
|
-
package_files.include(*@include)
|
106
|
-
package_files.exclude(*@exclude) if @exclude and not @exclude.empty?
|
107
|
-
FileUtils.mkdir_p @dir #rescue nil
|
108
|
-
package_files.each do |f|
|
109
|
-
pkgf = File.join(package_dir_path, f)
|
110
|
-
fdir = File.dirname(pkgf)
|
111
|
-
FileUtils.mkdir_p(fdir) if not File.exist?(fdir)
|
112
|
-
if File.directory?(f)
|
113
|
-
FileUtils.mkdir_p(pkgf)
|
114
|
-
else
|
115
|
-
FileUtils.rm_f(pkgf)
|
116
|
-
FileUtils.safe_ln(f, pkgf)
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
# create standard package files
|
121
|
-
FileUtils.chdir(@dir) do
|
122
|
-
@types.each do |t|
|
123
|
-
sh_cmd = nil
|
124
|
-
prefix = 'ERROR' # in case of unforseen bug
|
125
|
-
case t
|
126
|
-
when 'tbz', 'bz2', 'bzip2', 'tar.bz2'
|
127
|
-
prefix = ( t == 'tbz' ? 'tbz' : 'tar.bz2' )
|
128
|
-
sh_cmd = 'tar --bzip2 -cvf'
|
129
|
-
puts "\nReap is shelling out work to tar and bzip2..."
|
130
|
-
when 'tgz', 'tar.gz'
|
131
|
-
prefix = ( t == 'tgz' ? 'tgz' : 'tar.gz' )
|
132
|
-
sh_cmd = 'tar --gzip -cvf'
|
133
|
-
puts "\nReap is shelling out work to tar and gzip..."
|
134
|
-
when 'zip'
|
135
|
-
prefix = 'zip'
|
136
|
-
sh_cmd = 'zip -r'
|
137
|
-
puts "\nReap is shelling out work to zip..."
|
138
|
-
when 'gem'
|
139
|
-
sh_cmd = nil
|
140
|
-
else
|
141
|
-
puts "Unknown package type '#{t}' skipped."
|
142
|
-
sh_cmd = nil
|
143
|
-
end
|
144
|
-
sh %{#{sh_cmd} #{@package_name}.#{prefix} #{@package_name}} if sh_cmd
|
145
|
-
end
|
146
|
-
puts
|
147
|
-
end
|
148
|
-
|
149
|
-
# create gem package
|
150
|
-
run_gem if defined?(Gem) and @types.include?('gem')
|
151
|
-
|
152
|
-
return true
|
153
|
-
end
|
154
|
-
|
155
|
-
def run_gem
|
156
|
-
spec = Gem::Specification.new { |s|
|
157
|
-
|
158
|
-
s.name = @name
|
159
|
-
|
160
|
-
if @version
|
161
|
-
s.version = @version
|
162
|
-
else
|
163
|
-
d = @date.split('-').collect{ |e| e.to_i }
|
164
|
-
d[0] = d[0] - 2000
|
165
|
-
s.version = d.join('.')
|
166
|
-
end
|
167
|
-
|
168
|
-
@dependencies.each{ |d,v|
|
169
|
-
if v
|
170
|
-
s.add_dependency(d, v)
|
171
|
-
else
|
172
|
-
s.add_dependency(d)
|
173
|
-
end
|
174
|
-
}
|
175
|
-
|
176
|
-
s.platform = @platform
|
177
|
-
s.summary = @summary
|
178
|
-
s.requirements = @requirements
|
179
|
-
|
180
|
-
# s.files = Dir.glob("lib/**/*").delete_if {|item| item.include?("CVS")}
|
181
|
-
# s.files.concat Dir.glob("bin/**/*").delete_if {|item| item.include?("CVS")}
|
182
|
-
package_files = FileList.new
|
183
|
-
package_files.include(*@include)
|
184
|
-
package_files.exclude(*@exclude) if @exclude and not @exclude.empty?
|
185
|
-
s.files = package_files.to_a
|
186
|
-
|
187
|
-
s.require_path = 'lib'
|
188
|
-
s.autorequire = @autorequire if @autorequire
|
189
|
-
s.author = @author
|
190
|
-
s.email = @email
|
191
|
-
s.rubyforge_project = @project
|
192
|
-
s.homepage = @homepage
|
193
|
-
s.executables = @executables
|
194
|
-
s.bindir = "bin"
|
195
|
-
|
196
|
-
}
|
197
|
-
|
198
|
-
puts "Reap is shelling out work to the Gem Package Manager..."
|
199
|
-
Gem.manage_gems
|
200
|
-
Gem::Builder.new(spec).build
|
201
|
-
sh %{mv ./*.gem #{@dir}/}
|
202
|
-
end
|
203
|
-
|
204
|
-
end
|