reap 4.3.3 → 4.3.4
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/COPYING +400 -8
- data/ProjectInfo +26 -26
- data/ProjectInfo.rb +88 -0
- data/bin/reap +1 -1
- data/bin/rubytest +1 -1
- 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} +12 -12
- data/data/reap/scaffold/standard/README +3 -0
- data/data/reap/scaffold/standard/Rakefile +10 -0
- data/data/reap/scaffold/{INSTALL → standard/TODO} +0 -0
- data/data/reap/scaffold/subversion/trunk/COPYING +403 -0
- data/data/reap/scaffold/{README → subversion/trunk/ChangeLog} +0 -0
- data/data/reap/scaffold/subversion/trunk/INSTALL +14 -0
- data/data/reap/scaffold/subversion/trunk/ProjectInfo +78 -0
- data/data/reap/scaffold/subversion/trunk/README +3 -0
- data/data/reap/scaffold/subversion/trunk/Rakefile +10 -0
- data/data/reap/scaffold/{Todo → subversion/trunk/TODO} +0 -0
- data/data/reap/{setup-3.4.1/setup.rb → setup.rb} +181 -202
- data/{ChangeLog → doc/ChangeLog} +0 -0
- data/doc/doap.xml +27 -0
- data/doc/note/Rakefile.htm +69 -0
- data/{note/Rakefile → doc/note/aRakefile} +0 -0
- data/{note → doc/note}/composite_task.rb +0 -0
- data/{note → doc/note}/compositepublisher.rb +0 -0
- data/{note → doc/note}/ftptools.rb +0 -0
- data/{note → doc/note}/interface/interface.rb +0 -0
- data/{note → doc/note}/interface/rubyforge.rb +0 -0
- data/{note → doc/note}/license-each.rb +0 -0
- data/{note → doc/note}/package.rb.0 +0 -0
- data/{note → doc/note}/publisher.rb +0 -0
- data/{note → doc/note}/rubyforgepublisher.rb +0 -0
- data/{lib/reap/task → doc/note}/scaffold.rb +4 -3
- data/{lib/reap → doc/note}/setup.rb +7 -6
- data/{note → doc/note}/sshpublisher.rb +0 -0
- data/{note → doc/note}/suby-cvs.rb +0 -0
- data/{note → doc/note}/template.rb +0 -0
- data/lib/reap/bin/reap.rb +75 -51
- data/lib/reap/bin/{lint.rb → rubylint.rb} +0 -0
- data/lib/reap/projectinfo.rb +107 -50
- data/lib/reap/reap.rb +60 -0
- data/lib/reap/task.rb +46 -60
- data/lib/reap/task/doap.rb +67 -0
- data/lib/reap/task/info.rb +2 -2
- data/lib/reap/task/install.rb +29 -18
- data/lib/reap/task/package.rb +56 -56
- data/lib/reap/task/release.rb +34 -13
- data/package.rb +627 -0
- data/setup.rb +287 -272
- data/test/tc_reap.rb +1 -1
- metadata +64 -61
- data/ANN +0 -8
- data/data/reap/scaffold/COPYING +0 -11
- data/data/reap/scaffold/Rakefile +0 -146
- data/data/reap/scaffold/setup.rb +0 -1551
- data/data/reap/setup-3.4.1/COPYING +0 -515
- data/data/reap/setup-3.4.1/ChangeLog +0 -732
- data/data/reap/setup-3.4.1/Makefile +0 -56
- data/data/reap/setup-3.4.1/NEWS.en +0 -155
- data/data/reap/setup-3.4.1/NEWS.ja +0 -152
- data/data/reap/setup-3.4.1/README.en +0 -30
- data/data/reap/setup-3.4.1/README.ja +0 -34
- data/data/reap/setup-3.4.1/TODO +0 -14
- data/data/reap/setup-3.4.1/Template.README.en +0 -41
- data/data/reap/setup-3.4.1/Template.README.ja +0 -46
- data/data/reap/setup-3.4.1/Usage_en.txt +0 -231
- data/data/reap/setup-3.4.1/Usage_ja.txt +0 -250
- data/data/reap/setup-3.4.1/doc.en/hookapi.html +0 -91
- data/data/reap/setup-3.4.1/doc.en/index.html +0 -28
- data/data/reap/setup-3.4.1/doc.en/metaconfapi.html +0 -79
- data/data/reap/setup-3.4.1/doc.en/news.html +0 -189
- data/data/reap/setup-3.4.1/doc.en/usage.html +0 -297
- data/data/reap/setup-3.4.1/doc.ja/hookapi.html +0 -84
- data/data/reap/setup-3.4.1/doc.ja/index.html +0 -28
- data/data/reap/setup-3.4.1/doc.ja/metaconfapi.html +0 -80
- data/data/reap/setup-3.4.1/doc.ja/news.html +0 -186
- data/data/reap/setup-3.4.1/doc.ja/usage.html +0 -319
- data/data/reap/setup-3.4.1/sample/add-task.rb +0 -15
- data/data/reap/setup-3.4.1/test/test_installer.rb +0 -136
data/lib/reap/reap.rb
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
|
|
2
|
+
# Reap support
|
|
3
|
+
require 'reap/projectinfo'
|
|
4
|
+
require 'reap/task'
|
|
5
|
+
|
|
6
|
+
# Reap tasks
|
|
7
|
+
require 'reap/task/fileperm'
|
|
8
|
+
require 'reap/task/test'
|
|
9
|
+
require 'reap/task/testext'
|
|
10
|
+
require 'reap/task/rdoc'
|
|
11
|
+
require 'reap/task/announce'
|
|
12
|
+
require 'reap/task/package'
|
|
13
|
+
require 'reap/task/publish'
|
|
14
|
+
require 'reap/task/info'
|
|
15
|
+
require 'reap/task/install'
|
|
16
|
+
require 'reap/task/release'
|
|
17
|
+
require 'reap/task/doap'
|
|
18
|
+
#require 'reap/task/noop'
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
module Reap
|
|
22
|
+
|
|
23
|
+
Version = "4.3.4"
|
|
24
|
+
|
|
25
|
+
# Hash of all possible tasks
|
|
26
|
+
# { task name => task class }
|
|
27
|
+
|
|
28
|
+
def self.registry
|
|
29
|
+
Task.task_list
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Hash of tasks available to this project
|
|
33
|
+
|
|
34
|
+
def self.tasks
|
|
35
|
+
unless @tasks
|
|
36
|
+
@tasks = {}
|
|
37
|
+
registry.each do |name, klass|
|
|
38
|
+
@tasks[name] = klass if klass.verify?
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
@tasks
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def self.register( alternative_project_file=nil )
|
|
45
|
+
$PROJECT_INFO = ProjectInfo.new( alternative_project_file )
|
|
46
|
+
$PROJECT_INFO.exists?
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def self.projectfile?
|
|
50
|
+
$PROJECT_INFO.exists?
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# def self.initialize
|
|
54
|
+
# @tasks ||= {}
|
|
55
|
+
# registry.each do |name, klass|
|
|
56
|
+
# @tasks[name] = klass.new
|
|
57
|
+
# end
|
|
58
|
+
# end
|
|
59
|
+
|
|
60
|
+
end
|
data/lib/reap/task.rb
CHANGED
|
@@ -18,73 +18,35 @@ require 'facet/openobject'
|
|
|
18
18
|
|
|
19
19
|
# Base class for reap tasks.
|
|
20
20
|
#
|
|
21
|
-
# Here's
|
|
21
|
+
# Here's a simple example:
|
|
22
22
|
#
|
|
23
23
|
# class MyTask < Reap::Task
|
|
24
24
|
#
|
|
25
|
-
#
|
|
25
|
+
# task_desc 'this is a custom reap task'
|
|
26
26
|
#
|
|
27
|
-
#
|
|
28
|
-
#
|
|
29
|
-
# attr_accessor :message
|
|
27
|
+
# task_attr :mytask
|
|
30
28
|
#
|
|
31
29
|
# def init
|
|
32
|
-
#
|
|
30
|
+
# mytask.message ||= 'None Found!'
|
|
33
31
|
# end
|
|
34
32
|
#
|
|
35
33
|
# def run
|
|
36
|
-
# puts
|
|
34
|
+
# puts mytask.message #=> Hello!
|
|
35
|
+
# puts master.default #=> Yo!
|
|
36
|
+
# puts mytask.default #=> Yo! (inherited from master)
|
|
37
37
|
# end
|
|
38
38
|
# end
|
|
39
39
|
#
|
|
40
|
-
#
|
|
40
|
+
# With the corresponding settings in the ProjectInfo file as:
|
|
41
41
|
#
|
|
42
|
-
# default:
|
|
42
|
+
# default: Yo!
|
|
43
43
|
#
|
|
44
|
-
#
|
|
45
|
-
#
|
|
46
|
-
# message: Message text, if any.
|
|
44
|
+
# mytask:
|
|
45
|
+
# message: Hello!
|
|
47
46
|
#
|
|
48
47
|
|
|
49
48
|
module Reap
|
|
50
49
|
|
|
51
|
-
@registry ||= {}
|
|
52
|
-
|
|
53
|
-
# Hash of all task classes
|
|
54
|
-
def self.registry ; @registry ; end
|
|
55
|
-
|
|
56
|
-
# Hash of tasks available to this project
|
|
57
|
-
def self.tasks
|
|
58
|
-
unless @tasks
|
|
59
|
-
@tasks = {}
|
|
60
|
-
@registry.each { |name, klass|
|
|
61
|
-
@tasks[name] = klass if klass.verify?
|
|
62
|
-
}
|
|
63
|
-
end
|
|
64
|
-
@tasks
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def self.register
|
|
68
|
-
$PROJECT_INFO = ProjectInfo.new( $PROJECT_FILE )
|
|
69
|
-
|
|
70
|
-
#@registry ||= {}
|
|
71
|
-
#ObjectSpace.each_object(Class) { |klass|
|
|
72
|
-
# if klass < ::Reap::Task
|
|
73
|
-
# if klass.verify
|
|
74
|
-
# @registry[klass.basename.downcase] = klass
|
|
75
|
-
# end
|
|
76
|
-
# end
|
|
77
|
-
#}
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
# def self.initialize
|
|
81
|
-
# @tasks ||= {}
|
|
82
|
-
# registry.each do |name, klass|
|
|
83
|
-
# @tasks[name] = klass.new
|
|
84
|
-
# end
|
|
85
|
-
# end
|
|
86
|
-
|
|
87
|
-
|
|
88
50
|
class Task
|
|
89
51
|
|
|
90
52
|
include ::Config
|
|
@@ -94,11 +56,19 @@ module Reap
|
|
|
94
56
|
|
|
95
57
|
class << self
|
|
96
58
|
|
|
59
|
+
# When this class is inherited the new task is registered.
|
|
60
|
+
|
|
97
61
|
def inherited( base )
|
|
98
|
-
|
|
62
|
+
task_list[base.task_name] = base
|
|
99
63
|
end
|
|
100
64
|
|
|
101
|
-
def
|
|
65
|
+
def task_list
|
|
66
|
+
@task_list ||= {}
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def task_name
|
|
70
|
+
basename.downcase
|
|
71
|
+
end
|
|
102
72
|
|
|
103
73
|
def task_desc( text=nil, &block )
|
|
104
74
|
return @task_desc = proc { text } if text
|
|
@@ -127,6 +97,10 @@ module Reap
|
|
|
127
97
|
true
|
|
128
98
|
end
|
|
129
99
|
|
|
100
|
+
def master
|
|
101
|
+
@master ||= CascadingOpenObject.new( $PROJECT_INFO )
|
|
102
|
+
end
|
|
103
|
+
|
|
130
104
|
# def master_attributes ; @master_attributes ||= [] ; end
|
|
131
105
|
#
|
|
132
106
|
# # Use this DSL method to define master task attributes.
|
|
@@ -139,11 +113,11 @@ module Reap
|
|
|
139
113
|
# properties not to be looked up in master
|
|
140
114
|
# if they are not in regular task section
|
|
141
115
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
116
|
+
# def task_only_properties ; @task_only_properties ||= [] ; end
|
|
117
|
+
# def task_only_property( *names )
|
|
118
|
+
# @task_only_properties ||= []
|
|
119
|
+
# @task_only_properties |= names.collect { |n| n.to_s }
|
|
120
|
+
# end
|
|
147
121
|
|
|
148
122
|
end #<< class
|
|
149
123
|
|
|
@@ -156,13 +130,13 @@ module Reap
|
|
|
156
130
|
def section_required? ; self.class.section_required? ; end
|
|
157
131
|
|
|
158
132
|
#def master ; ::ProjectInfo.info ; end
|
|
159
|
-
def master ;
|
|
133
|
+
def master ; self.class.master ; end
|
|
160
134
|
def section ; @section ; end
|
|
161
135
|
def task ; @task ; end
|
|
162
136
|
|
|
163
137
|
def initialize( *args )
|
|
164
|
-
|
|
165
|
-
section =
|
|
138
|
+
#@master = CascadingOpenObject.new( $PROJECT_INFO )
|
|
139
|
+
section = master[task_name]
|
|
166
140
|
case section
|
|
167
141
|
when Array
|
|
168
142
|
section.each do |s|
|
|
@@ -181,7 +155,7 @@ module Reap
|
|
|
181
155
|
task_properties = {}
|
|
182
156
|
#self.class.task_only_properties.each { |t| section[t] ||= nil }
|
|
183
157
|
task_properties = CascadingOpenObject.new( section )
|
|
184
|
-
task_properties.__parent__ =
|
|
158
|
+
task_properties.__parent__ = master
|
|
185
159
|
@task = task_properties
|
|
186
160
|
|
|
187
161
|
init #task
|
|
@@ -226,6 +200,18 @@ module Reap
|
|
|
226
200
|
system arg unless $PRETEND
|
|
227
201
|
end
|
|
228
202
|
|
|
203
|
+
def provide_setup_rb
|
|
204
|
+
return true if File.exists?( 'setup.rb')
|
|
205
|
+
# copy from data dir to current directory
|
|
206
|
+
f = File.join( Config::CONFIG['datadir'], 'reap', 'setup_rb', 'setup.rb' )
|
|
207
|
+
if File.exists?(f)
|
|
208
|
+
File.cp( f, '.' )
|
|
209
|
+
true
|
|
210
|
+
else
|
|
211
|
+
nil
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
|
|
229
215
|
end #class Task
|
|
230
216
|
|
|
231
217
|
end #module Reap
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
|
|
2
|
+
module Reap
|
|
3
|
+
|
|
4
|
+
class Doap < Task
|
|
5
|
+
|
|
6
|
+
task_desc %{Generate DOAP project file.}
|
|
7
|
+
|
|
8
|
+
task_help %{
|
|
9
|
+
|
|
10
|
+
reap doap
|
|
11
|
+
|
|
12
|
+
DOAP is an XML/RTF format for describing a project. It contains
|
|
13
|
+
much of the same information as Reap's ProjectInfo file, but is
|
|
14
|
+
more suitable to RESTful interapplication communications, like
|
|
15
|
+
RSS/Atom feeds.
|
|
16
|
+
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
task_attr :prj
|
|
20
|
+
|
|
21
|
+
# Setup doap data
|
|
22
|
+
|
|
23
|
+
def init
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Generate doap file
|
|
28
|
+
|
|
29
|
+
def run
|
|
30
|
+
puts "Generating doap.xml file..."
|
|
31
|
+
|
|
32
|
+
x = ''
|
|
33
|
+
x << %{
|
|
34
|
+
|<Project xmlns="http://usefulinc.com/ns/doap#"\n
|
|
35
|
+
| xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\n
|
|
36
|
+
| xmlns:foaf="http://xmlns.com/foaf/0.1/">
|
|
37
|
+
| <name>#{prj.title}</name>
|
|
38
|
+
| <shortname>#{prj.name}</shortname>
|
|
39
|
+
| <homepage rdf:resource="#{prj.homepage}" />
|
|
40
|
+
| <wiki rdf:resource="#{prj.wiki}" />
|
|
41
|
+
| <created>#{prj.created}</created>
|
|
42
|
+
| <shortdesc xml:lang="en">
|
|
43
|
+
}.margin
|
|
44
|
+
x << "\n" << prj.summary.word_wrap(50).indent(6)
|
|
45
|
+
x << %{
|
|
46
|
+
| </shortdesc>
|
|
47
|
+
| <description xml:lang="en">
|
|
48
|
+
}.margin
|
|
49
|
+
x << "\n" << prj.description.word_wrap(50).indent(6)
|
|
50
|
+
x << %{
|
|
51
|
+
| </description>
|
|
52
|
+
| <maintainer>
|
|
53
|
+
| <foaf:Person>
|
|
54
|
+
| <foaf:name>#{prj.maintainer}</foaf:name>
|
|
55
|
+
| <foaf:email>#{prj.email}</foaf:name>
|
|
56
|
+
| <foaf:homepage rdf:resource="#{prj.homepage}" />
|
|
57
|
+
| </foaf:Person>
|
|
58
|
+
| </maintainer>
|
|
59
|
+
| </Project>
|
|
60
|
+
}.margin
|
|
61
|
+
|
|
62
|
+
File.open( "doap.xml", 'w' ) { |f| f << x }
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
end
|
data/lib/reap/task/info.rb
CHANGED
data/lib/reap/task/install.rb
CHANGED
|
@@ -23,26 +23,37 @@ class Reap::Install < Reap::Task
|
|
|
23
23
|
#exe = %w{ setup.rb install.rb }.find{ |f| File.exists?(f) }
|
|
24
24
|
#raise "setup.rb or install.rb not found" if exe == nil
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
ARGV.delete('install')
|
|
31
|
-
ARGV << '-q' unless $VERBOSE
|
|
32
|
-
ARGV.concat(task.options)
|
|
33
|
-
|
|
34
|
-
$setup_pwd = $PROJECT_INFO.info_dir #Dir.pwd
|
|
26
|
+
unless provide_setup_rb
|
|
27
|
+
puts "Setup.rb is missing. Forced to skip debian package creation."
|
|
28
|
+
return nil
|
|
29
|
+
end
|
|
35
30
|
|
|
36
|
-
|
|
31
|
+
puts "Reap is shelling out work to setup.rb..."
|
|
37
32
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
33
|
+
# # prepare for using internalized setup.rb
|
|
34
|
+
#
|
|
35
|
+
# ARGV.delete('install')
|
|
36
|
+
# ARGV << '-q' unless $VERBOSE
|
|
37
|
+
# ARGV.concat(task.options)
|
|
38
|
+
#
|
|
39
|
+
# $setup_pwd = $PROJECT_INFO.info_dir #Dir.pwd
|
|
40
|
+
#
|
|
41
|
+
# # invoke setup.rb
|
|
42
|
+
#
|
|
43
|
+
# begin
|
|
44
|
+
# ToplevelInstaller.invoke
|
|
45
|
+
# rescue SetupError
|
|
46
|
+
# raise if $DEBUG
|
|
47
|
+
# $stderr.puts $!.message
|
|
48
|
+
# $stderr.puts "Try 'reap --help' for detailed usage."
|
|
49
|
+
# exit 1
|
|
50
|
+
# end
|
|
51
|
+
|
|
52
|
+
exe = %{ruby setup.rb}
|
|
53
|
+
exe << ' -q ' unless $VERBOSE
|
|
54
|
+
exe << task.options.join(' ')
|
|
55
|
+
exe << ' all'
|
|
56
|
+
sh exe
|
|
46
57
|
|
|
47
58
|
puts "Setup complete!"
|
|
48
59
|
end
|
data/lib/reap/task/package.rb
CHANGED
|
@@ -16,7 +16,7 @@ end
|
|
|
16
16
|
# = Package Task
|
|
17
17
|
#
|
|
18
18
|
# This task creates standard .zip, .tgz, or .tbz
|
|
19
|
-
# packages, plus .gem distributions.
|
|
19
|
+
# packages, plus .gem or .deb distributions.
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
class Reap::Package < Reap::Task
|
|
@@ -27,7 +27,11 @@ class Reap::Package < Reap::Task
|
|
|
27
27
|
# Task line description
|
|
28
28
|
|
|
29
29
|
task_desc do
|
|
30
|
-
|
|
30
|
+
if master.package
|
|
31
|
+
disttypes = master.package.distribute || master.distribute || [ 'gem', 'tar.bz2', 'zip' ]
|
|
32
|
+
else
|
|
33
|
+
disttypes = master.distribute || [ 'gem', 'tar.bz2', 'zip' ]
|
|
34
|
+
end
|
|
31
35
|
"Build distribution packages (#{disttypes.join(', ')})."
|
|
32
36
|
end
|
|
33
37
|
|
|
@@ -64,7 +68,7 @@ class Reap::Package < Reap::Task
|
|
|
64
68
|
|
|
65
69
|
The package task also has subsection for each type of distribution.
|
|
66
70
|
These can be used to override settings in the package information
|
|
67
|
-
if
|
|
71
|
+
if they in some way differ. Possible subsections are:
|
|
68
72
|
|
|
69
73
|
gems
|
|
70
74
|
pacman
|
|
@@ -147,27 +151,21 @@ class Reap::Package < Reap::Task
|
|
|
147
151
|
|
|
148
152
|
def run
|
|
149
153
|
|
|
150
|
-
puts "Creating #{pkg.distribute.join(',')} packages..."
|
|
151
|
-
|
|
152
|
-
# create package image
|
|
153
154
|
group_dir_path = File.join( pkg.dir, pkg.package_name )
|
|
154
155
|
package_dir_path = File.join( pkg.dir, pkg.package_name, pkg.package_name )
|
|
155
156
|
|
|
156
157
|
if FileTest.directory?(group_dir_path)
|
|
157
|
-
|
|
158
|
-
until inp = $stdin.gets[0,1] ; sleep 1 ; end
|
|
159
|
-
inp = inp.to_s.downcase
|
|
160
|
-
case inp
|
|
161
|
-
when 'y'
|
|
162
|
-
# continue...
|
|
163
|
-
when 'r'
|
|
158
|
+
if $FORCE
|
|
164
159
|
puts "Removing old directory '#{File.expand_path(group_dir_path)}'..."
|
|
165
160
|
FileUtils.rm_r(group_dir_path)
|
|
166
161
|
else
|
|
167
|
-
puts "
|
|
162
|
+
puts "Package directory '#{pkg.package_name}' already exists. Use -f option to overwrite."
|
|
168
163
|
return nil
|
|
169
164
|
end
|
|
170
165
|
end
|
|
166
|
+
|
|
167
|
+
puts "Creating #{pkg.distribute.join(',')} packages..."
|
|
168
|
+
|
|
171
169
|
package_files = FileList.new
|
|
172
170
|
package_files.include(*pkg.include)
|
|
173
171
|
package_files.exclude(*pkg.exclude) if pkg.exclude and not pkg.exclude.empty?
|
|
@@ -252,8 +250,7 @@ private
|
|
|
252
250
|
|
|
253
251
|
def run_gem
|
|
254
252
|
|
|
255
|
-
use_subsection :
|
|
256
|
-
#pkg = sub ? sub : pkg
|
|
253
|
+
use_subsection :gems
|
|
257
254
|
|
|
258
255
|
spec = Gem::Specification.new { |s|
|
|
259
256
|
s.name = pkg.name
|
|
@@ -309,11 +306,11 @@ private
|
|
|
309
306
|
|
|
310
307
|
def run_deb
|
|
311
308
|
|
|
312
|
-
use_subsection :
|
|
309
|
+
use_subsection :debian
|
|
313
310
|
|
|
314
311
|
# build the debian control file
|
|
315
312
|
|
|
316
|
-
|
|
313
|
+
dep = pkg.dependencies.collect{ |d, v|
|
|
317
314
|
if v
|
|
318
315
|
"#{d} (#{v})"
|
|
319
316
|
else
|
|
@@ -327,42 +324,55 @@ private
|
|
|
327
324
|
# Pre-Depends: perl, ...
|
|
328
325
|
# Suggests: docbook
|
|
329
326
|
|
|
327
|
+
arch = pkg.architecture.downcase
|
|
328
|
+
arch = (arch == 'any' ? 'all' : arch)
|
|
329
|
+
|
|
330
330
|
ctrl = %{
|
|
331
331
|
Package: #{pkg.name}
|
|
332
332
|
Version: #{pkg.version}
|
|
333
333
|
Priority: optional
|
|
334
|
-
Architecture: #{
|
|
334
|
+
Architecture: #{arch}
|
|
335
335
|
Essential: no
|
|
336
336
|
}.tabto(0)
|
|
337
|
-
ctrl << "Section: #{pkg.category}" if pkg.category
|
|
338
|
-
ctrl << "Depends: #{
|
|
339
|
-
ctrl << "Recommends: #{pkg.recommends.join(' | ')}" unless pkg.recommends.empty?
|
|
340
|
-
ctrl << "Conflicts: #{pkg.conflicts.join(', ')}" unless pkg.conflicts.empty?
|
|
341
|
-
ctrl <<
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
if pkg.architecture == 'any'
|
|
350
|
-
debname = "ruby_#{pkg.name}_#{pkg.version}.deb"
|
|
337
|
+
ctrl << "Section: #{pkg.category}\n" if pkg.category
|
|
338
|
+
ctrl << "Depends: #{dep}\n" unless dep.empty?
|
|
339
|
+
ctrl << "Recommends: #{pkg.recommends.join(' | ')}\n" unless pkg.recommends.empty?
|
|
340
|
+
ctrl << "Conflicts: #{pkg.conflicts.join(', ')}\n" unless pkg.conflicts.empty?
|
|
341
|
+
ctrl << "Maintainer: #{pkg.maintainer} <#{pkg.email}>\n"
|
|
342
|
+
ctrl << "Provides: #{pkg.name}\n"
|
|
343
|
+
ctrl << "Description: #{pkg.summary}\n"
|
|
344
|
+
ctrl << " #{pkg.description}\n"
|
|
345
|
+
|
|
346
|
+
if arch == 'all'
|
|
347
|
+
debname = "#{pkg.name}-ruby_#{pkg.version}.deb"
|
|
351
348
|
else
|
|
352
|
-
debname = "
|
|
349
|
+
debname = "#{pkg.name}-ruby_#{pkg.version}_#{pkg.architecture}.deb"
|
|
350
|
+
end
|
|
351
|
+
pkgdir = File.join( pkg.dir, pkg.package_name )
|
|
352
|
+
debdir = File.join( pkgdir, 'debian' )
|
|
353
|
+
|
|
354
|
+
#debdebdir = File.join( debdir, 'DEBIAN' )
|
|
355
|
+
debfile = File.join( pkgdir, debname )
|
|
356
|
+
|
|
357
|
+
unless provide_setup_rb
|
|
358
|
+
puts "Setup.rb is missing. Forced to skip debian package creation."
|
|
359
|
+
return nil
|
|
353
360
|
end
|
|
354
|
-
debdir = File.join( pkg.dir, pkg.package_name, 'debian' )
|
|
355
|
-
debdebdir = File.join( debdir, 'DEBIAN' )
|
|
356
|
-
debfile = File.join( debdir, debname )
|
|
357
361
|
|
|
358
362
|
puts "Reap is shelling out work to the deb-pkg..."
|
|
363
|
+
|
|
364
|
+
cmd = %{ruby setup.rb }
|
|
365
|
+
cmd << '-q ' unless $VERBOSE
|
|
366
|
+
cmd << %{all --installdirs=std --root=#{debdir}}
|
|
367
|
+
|
|
359
368
|
FileUtils.mkdir_p(debdir)
|
|
360
|
-
sh
|
|
361
|
-
FileUtils.mkdir_p(debdebdir)
|
|
362
|
-
File.open( File.join(debdebdir, 'control'), 'w') { |f| f << ctrl }
|
|
363
|
-
#sh %{dpkg-deb -b #{debdir} #{debfile}}
|
|
364
|
-
end
|
|
369
|
+
sh cmd
|
|
365
370
|
|
|
371
|
+
FileUtils.mkdir_p( File.join(debdir, 'DEBIAN') )
|
|
372
|
+
File.open( File.join(debdir, 'DEBIAN', 'control'), 'w') { |f| f << ctrl }
|
|
373
|
+
|
|
374
|
+
sh %{dpkg-deb -b #{debdir} #{debfile}}
|
|
375
|
+
end
|
|
366
376
|
|
|
367
377
|
# This builds a pacman (archlinux) PKGBUILD script.
|
|
368
378
|
|
|
@@ -375,19 +385,9 @@ private
|
|
|
375
385
|
return nil
|
|
376
386
|
end
|
|
377
387
|
|
|
378
|
-
#
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
# _con = pkg.pac.conflicts || pkg.conflicts
|
|
382
|
-
# else
|
|
383
|
-
_dep = pkg.dependencies
|
|
384
|
-
_rep = pkg.replaces
|
|
385
|
-
_con = pkg.conflicts
|
|
386
|
-
# end
|
|
387
|
-
|
|
388
|
-
_dep = _dep.collect{ |d| "'#{d}'" }.join(' ')
|
|
389
|
-
_rep = _rep.collect{ |d| "'#{d}'" }.join(' ')
|
|
390
|
-
_con = _rep.collect{ |d| "'#{d}'" }.join(' ')
|
|
388
|
+
_dep = pkg.dependencies.collect{ |d| "'#{d}'" }.join(' ')
|
|
389
|
+
_rep = pkg.replaces.collect{ |d| "'#{d}'" }.join(' ')
|
|
390
|
+
_con = pkg.conflicts.collect{ |d| "'#{d}'" }.join(' ')
|
|
391
391
|
|
|
392
392
|
proto = %{
|
|
393
393
|
pkgname=#{pkg.name}
|
|
@@ -435,7 +435,7 @@ private
|
|
|
435
435
|
#sh %{ruby setup.rb all --prefix=#{debdir}}
|
|
436
436
|
#FileUtils.mkdir_p(pacpacdir)
|
|
437
437
|
File.open( pacfile, 'w') { |f| f << proto }
|
|
438
|
-
#sh %{
|
|
438
|
+
#sh %{}
|
|
439
439
|
|
|
440
440
|
end
|
|
441
441
|
|