ratch 0.3.0 → 0.4.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/{log/history → CHANGES} +0 -0
- data/{log/todo → TODO} +0 -0
- data/bin/manifest +451 -0
- data/bin/ratch +3 -3
- data/demo/task/config.yaml +4 -0
- data/lib/ratch/{batch/argvutils.rb → dsl/argv.rb} +9 -4
- data/lib/ratch/dsl/batch.rb +226 -0
- data/lib/ratch/{batch → dsl}/build.rb +83 -4
- data/lib/ratch/{batch/consoleutils.rb → dsl/console.rb} +13 -5
- data/lib/ratch/{batch/emailutils.rb → dsl/email.rb} +21 -25
- data/lib/ratch/{batch/fileutils.rb → dsl/file.rb} +56 -56
- data/lib/ratch/dsl/meta.rb +132 -0
- data/lib/ratch/{batch → dsl}/options.rb +7 -5
- data/lib/ratch/dsl/setup.rb +124 -0
- data/lib/ratch/{support/signiture.rb → dsl/sign.rb} +9 -18
- data/lib/ratch/dsl/stage.rb +147 -0
- data/lib/ratch/dsl/task.rb +139 -0
- data/lib/ratch/{uploadutils.rb → dsl/upload.rb} +7 -5
- data/lib/ratch/{batch/task.rb → dsl/zip.rb} +30 -14
- data/lib/ratch/dsl.rb +52 -0
- data/lib/ratch/extra/email.rb +5 -0
- data/lib/ratch/extra/stage.rb +5 -0
- data/lib/ratch/extra/zip.rb +5 -0
- data/lib/ratch/manifest.rb +540 -0
- data/lib/ratch/{project → metadata}/information.rb +1 -0
- data/lib/ratch/{project → metadata}/package.rb +28 -2
- data/lib/ratch/{project → metadata}/project.rb +8 -16
- data/lib/ratch/{project → metadata}/release.rb +6 -6
- data/lib/ratch/support/errors.rb +4 -0
- data/lib/ratch/support/filename.rb +18 -0
- data/lib/ratch/toolset/ruby/compile +49 -0
- data/lib/ratch/toolset/ruby/pack/gem +26 -18
- data/lib/ratch/toolset/ruby/pack/tgz +25 -64
- data/lib/ratch/toolset/ruby/pack/zip +46 -0
- data/lib/ratch/toolset/ruby/publish +23 -24
- data/lib/ratch/toolset/ruby/release +8 -0
- data/lib/ratch/toolset/ruby/stamp +33 -0
- data/lib/ratch/toolset/sandbox +11 -0
- data/meta/MANIFEST +101 -23
- data/meta/ROLLRC +1 -1
- data/meta/config.yaml +10 -0
- data/meta/icli.yaml +2 -2
- data/meta/project.yaml +9 -10
- data/meta/xProjectInfo +41 -0
- data/task/release +1 -4
- metadata +82 -156
- data/demo/task/rdoc +0 -88
- data/demo/task/rdoc-old +0 -182
- data/doc/images/clipboard.jpg +0 -0
- data/doc/images/clipboard2.png +0 -0
- data/doc/images/milles-tn.jpg +0 -0
- data/doc/images/mints.png +0 -0
- data/doc/images/ratch2.png +0 -0
- data/doc/images/ruby-sm.png +0 -0
- data/doc/images/silver.gif +0 -0
- data/doc/images/toolbox.jpg +0 -0
- data/doc/index.html +0 -181
- data/doc/notes/original.rb +0 -308
- data/doc/rdoc/classes/Array.html +0 -194
- data/doc/rdoc/classes/Dir.html +0 -317
- data/doc/rdoc/classes/Hash.html +0 -217
- data/doc/rdoc/classes/Ratch/ArgvUtils/Ext.html +0 -285
- data/doc/rdoc/classes/Ratch/ArgvUtils.html +0 -173
- data/doc/rdoc/classes/Ratch/BatchFile.html +0 -207
- data/doc/rdoc/classes/Ratch/BatchManager.html +0 -250
- data/doc/rdoc/classes/Ratch/BatchScript.html +0 -127
- data/doc/rdoc/classes/Ratch/Batchable.html +0 -373
- data/doc/rdoc/classes/Ratch/Build.html +0 -321
- data/doc/rdoc/classes/Ratch/BuildManager.html +0 -319
- data/doc/rdoc/classes/Ratch/Buildable.html +0 -202
- data/doc/rdoc/classes/Ratch/ConfigUtils.html +0 -281
- data/doc/rdoc/classes/Ratch/ConsoleUtils.html +0 -189
- data/doc/rdoc/classes/Ratch/EmailUtils.html +0 -209
- data/doc/rdoc/classes/Ratch/FileUtils.html +0 -674
- data/doc/rdoc/classes/Ratch/GeneralOptions.html +0 -430
- data/doc/rdoc/classes/Ratch/Task.html +0 -201
- data/doc/rdoc/classes/Ratch/TaskManager.html +0 -330
- data/doc/rdoc/classes/Ratch/Taskable.html +0 -231
- data/doc/rdoc/classes/Ratch/UploadUtils.html +0 -566
- data/doc/rdoc/classes/Ratch.html +0 -201
- data/doc/rdoc/created.rid +0 -1
- data/doc/rdoc/files/COPYING.html +0 -1003
- data/doc/rdoc/files/README.html +0 -143
- data/doc/rdoc/files/lib/ratch/argvutils_rb.html +0 -131
- data/doc/rdoc/files/lib/ratch/batch_rb.html +0 -155
- data/doc/rdoc/files/lib/ratch/batchable_rb.html +0 -131
- data/doc/rdoc/files/lib/ratch/batchfile_rb.html +0 -148
- data/doc/rdoc/files/lib/ratch/buildable_rb.html +0 -131
- data/doc/rdoc/files/lib/ratch/consoleutils_rb.html +0 -131
- data/doc/rdoc/files/lib/ratch/emailutils_rb.html +0 -139
- data/doc/rdoc/files/lib/ratch/facets/multiglob_rb.html +0 -137
- data/doc/rdoc/files/lib/ratch/fileutils_rb.html +0 -139
- data/doc/rdoc/files/lib/ratch/options_rb.html +0 -131
- data/doc/rdoc/files/lib/ratch/taskable_rb.html +0 -131
- data/doc/rdoc/files/lib/ratch/uploadutils_rb.html +0 -150
- data/doc/rdoc/fr_class_index.html +0 -48
- data/doc/rdoc/fr_file_index.html +0 -41
- data/doc/rdoc/fr_method_index.html +0 -133
- data/doc/rdoc/index.html +0 -24
- data/doc/rdoc/rdoc-style.css +0 -208
- data/doc/scrap/flexihead-flip.jpg +0 -0
- data/doc/scrap/flexihead.jpg +0 -0
- data/doc/scrap/head1.jpg +0 -0
- data/doc/scrap/ratch.jpg +0 -0
- data/doc/scrap/ratch1.png +0 -0
- data/doc/scrap/ratch2.jpg +0 -0
- data/doc/scrap/ratch3.png +0 -0
- data/doc/scrap/red-ratch.jpg +0 -0
- data/doc/scrap/redratchet.jpg +0 -0
- data/doc/scrap/ruby-kit/ruby.png +0 -0
- data/doc/scrap/scrap.red +0 -256
- data/doc/sitemap.yaml +0 -10
- data/doc/siteparts/index.red +0 -100
- data/doc/siteparts/layout.rhtml +0 -56
- data/doc/siteparts/tutorial.red +0 -578
- data/doc/style.css +0 -112
- data/doc/tutorial.html +0 -722
- data/lib/ratch/batch.rb +0 -488
- data/lib/ratch/support/setuputils.rb +0 -124
- data/lib/ratch/support/stage.rb +0 -292
- data/lib/ratch/toolset/ruby/rdoc +0 -88
- data/task/rdoc +0 -6
- data/work/old/batchfile.rb +0 -95
- data/work/project-old.rb +0 -67
- data/work/scrap/install +0 -89
- data/work/scrap/install.0 +0 -49
- data/work/scrap/install.1 +0 -63
- data/work/scrap/ludo +0 -25
- data/work/scrap/oldtaskable.rb +0 -573
- data/work/scrap/ratch.man +0 -39
- data/work/scrap/taskable-simple.rb +0 -42
- data/work/scrap/taskable.rb +0 -120
data/lib/ratch/support/stage.rb
DELETED
@@ -1,292 +0,0 @@
|
|
1
|
-
# = TITLE:
|
2
|
-
#
|
3
|
-
# Build
|
4
|
-
#
|
5
|
-
# = COPYING:
|
6
|
-
#
|
7
|
-
# Copyright (c) 2007 Psi T Corp.
|
8
|
-
#
|
9
|
-
# This file is part of the ProUtils' Box program.
|
10
|
-
#
|
11
|
-
# Box 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
|
-
# Box 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 Box. If not, see <http://www.gnu.org/licenses/>.
|
23
|
-
|
24
|
-
require 'fileutils'
|
25
|
-
require 'facets/string/lchomp'
|
26
|
-
require 'facets/hash/rekey'
|
27
|
-
require 'facets/hash/slice'
|
28
|
-
|
29
|
-
require 'box/buildutils'
|
30
|
-
|
31
|
-
module Box
|
32
|
-
|
33
|
-
# Error when attempting to overwrite prexisting package.
|
34
|
-
# Presently this is triggered by the existance of the stage
|
35
|
-
# directory, not any specific package file.
|
36
|
-
|
37
|
-
class OverwriteError < Exception
|
38
|
-
end
|
39
|
-
|
40
|
-
# Build packages for a given platform. It servers as the basis
|
41
|
-
# of all package building for Box. It does this by first staging
|
42
|
-
# the package, ie. hard linking it to the store location,
|
43
|
-
# then it generates each package format from it.
|
44
|
-
|
45
|
-
class Build
|
46
|
-
|
47
|
-
include BuildUtils
|
48
|
-
|
49
|
-
attr_reader :location
|
50
|
-
|
51
|
-
attr_reader :project
|
52
|
-
|
53
|
-
attr_reader :release
|
54
|
-
|
55
|
-
#attr_reader :build
|
56
|
-
|
57
|
-
# General options. These are parsed and then passed on to the per-format builders.
|
58
|
-
# TODO: Fully enforce the dryrun and force options.
|
59
|
-
attr_reader :options
|
60
|
-
|
61
|
-
# Whether to include all files, not just manifests.
|
62
|
-
#attr_reader :all
|
63
|
-
|
64
|
-
# New package builder.
|
65
|
-
#
|
66
|
-
# INPUT:
|
67
|
-
# location Project location
|
68
|
-
# project Project metadata
|
69
|
-
# release Release metadata, eg. version number.
|
70
|
-
# build Build data hash. This generally differs b/c of platform binary builds.
|
71
|
-
# options Overrides and runtime options.
|
72
|
-
#
|
73
|
-
# Options can be
|
74
|
-
# types/formats Override build specified types
|
75
|
-
# store Override build specified store
|
76
|
-
# force Force build (overwrite old build of same name)
|
77
|
-
# dryrun Dry-run mode (NOT YET FULLY ENFORCED!)
|
78
|
-
|
79
|
-
def initialize(location, project, release, build, options={})
|
80
|
-
@location = location
|
81
|
-
|
82
|
-
# per-build project
|
83
|
-
project = project.clone
|
84
|
-
project.update(build)
|
85
|
-
|
86
|
-
@project = project
|
87
|
-
@release = release
|
88
|
-
@options = options
|
89
|
-
|
90
|
-
assert_valid
|
91
|
-
end
|
92
|
-
|
93
|
-
#
|
94
|
-
|
95
|
-
def assert_valid
|
96
|
-
raise "missing location" unless location
|
97
|
-
raise "missing project" unless project
|
98
|
-
raise "missing release" unless release
|
99
|
-
end
|
100
|
-
|
101
|
-
#
|
102
|
-
|
103
|
-
def package
|
104
|
-
@package ||= (
|
105
|
-
package = project.instance_data
|
106
|
-
#package.update(build)
|
107
|
-
package[:release] = release
|
108
|
-
package[:filelist] = project.filelist
|
109
|
-
#package.rekey!
|
110
|
-
Package.new(location, package)
|
111
|
-
)
|
112
|
-
end
|
113
|
-
|
114
|
-
# Force otherwise protected operations.
|
115
|
-
|
116
|
-
def force? ; @options[:force] ; end
|
117
|
-
|
118
|
-
# Dryrun mode? (NOT FULLY ENFORCED YET)
|
119
|
-
|
120
|
-
def dryrun? ; @options[:dryrun] ; end
|
121
|
-
|
122
|
-
# Which package formats to create.
|
123
|
-
|
124
|
-
def formats
|
125
|
-
@formats ||= (
|
126
|
-
[project.formats].flatten.collect{ |f| f.to_s.downcase.lchomp('.') }
|
127
|
-
)
|
128
|
-
end
|
129
|
-
|
130
|
-
# Where to store the created package(s).
|
131
|
-
|
132
|
-
def store
|
133
|
-
@project.store
|
134
|
-
end
|
135
|
-
|
136
|
-
# # Template for stage directory name. Defaults to "%s-%s" for name-version or
|
137
|
-
# # "%s-%s-%s for name-version-platform."
|
138
|
-
# #
|
139
|
-
# def stage_name
|
140
|
-
# #@stage_name ||= project.stage_name
|
141
|
-
# end
|
142
|
-
|
143
|
-
# Where to stage the build.
|
144
|
-
|
145
|
-
def stage_directory
|
146
|
-
@stage_directory ||= File.join(store, stage_name)
|
147
|
-
end
|
148
|
-
|
149
|
-
# Create package(s).
|
150
|
-
|
151
|
-
def generate
|
152
|
-
generate_extensions
|
153
|
-
generate_stage
|
154
|
-
generate_manifest
|
155
|
-
generate_packages
|
156
|
-
end
|
157
|
-
|
158
|
-
# Compile binary extensions -- shell out to compile script if given.
|
159
|
-
# This is used when creating binary packages.
|
160
|
-
|
161
|
-
def generate_extensions
|
162
|
-
compile = project.compile
|
163
|
-
return unless compile
|
164
|
-
#begin
|
165
|
-
sh compile
|
166
|
-
#rescue
|
167
|
-
#end
|
168
|
-
end
|
169
|
-
|
170
|
-
# Prepare stage.
|
171
|
-
|
172
|
-
def generate_stage
|
173
|
-
return stage_directory if dryrun? # Don't link to stage if dryrun.
|
174
|
-
|
175
|
-
clear_stage
|
176
|
-
mkdir_p(stage_directory) #dir = File.expand_path(stage)
|
177
|
-
|
178
|
-
# TODO Dryrun test here or before folder creation?
|
179
|
-
files.each do |f| # Link files into staging area.
|
180
|
-
file = File.join(stage_directory, f)
|
181
|
-
if File.directory?(f)
|
182
|
-
mkdir_p(file)
|
183
|
-
else
|
184
|
-
unless File.exist?(file) and File.mtime(file) >= File.mtime(f)
|
185
|
-
ln(f, file) #safe_ln ?
|
186
|
-
end
|
187
|
-
end
|
188
|
-
end
|
189
|
-
return stage_directory
|
190
|
-
end
|
191
|
-
|
192
|
-
# Clear old stage, if any.
|
193
|
-
|
194
|
-
def clear_stage
|
195
|
-
if File.directory?(stage_directory) # Ensure existance of staging area
|
196
|
-
raise(OverwriteError, stage_directory) unless force?
|
197
|
-
rm_r(stage_directory)
|
198
|
-
end
|
199
|
-
end
|
200
|
-
|
201
|
-
# TODO Build manifest
|
202
|
-
|
203
|
-
def generate_manifest
|
204
|
-
end
|
205
|
-
|
206
|
-
# Build packages.
|
207
|
-
# TODO Move this to Manager ?
|
208
|
-
|
209
|
-
def generate_packages
|
210
|
-
package_files = formats.collect do |format|
|
211
|
-
#format = clean_type(format)
|
212
|
-
say '' if format == 'gem' # FIXME This is here b/c Gems outputs on it's own.
|
213
|
-
file = create_package(format)
|
214
|
-
unless dryrun? or (format == 'gem')
|
215
|
-
report_package_built(format, file) if file
|
216
|
-
end
|
217
|
-
file
|
218
|
-
end
|
219
|
-
report_packaging_complete(package_files.size)
|
220
|
-
end
|
221
|
-
|
222
|
-
# Create package.
|
223
|
-
|
224
|
-
def create_package(type)
|
225
|
-
package.format = type
|
226
|
-
|
227
|
-
builder_class = FormatBuilder.registry[type]
|
228
|
-
builder = builder_class.new(package, stage_directory, options)
|
229
|
-
file = builder.build
|
230
|
-
|
231
|
-
transfer(file) unless dryrun?
|
232
|
-
|
233
|
-
return file
|
234
|
-
end
|
235
|
-
|
236
|
-
# Stage name.
|
237
|
-
|
238
|
-
def stage_name
|
239
|
-
name = package.name
|
240
|
-
p name
|
241
|
-
version = package.version
|
242
|
-
platform = package.platform #arch
|
243
|
-
buildno = package.buildno
|
244
|
-
|
245
|
-
if project.stage
|
246
|
-
template = project.stage
|
247
|
-
else
|
248
|
-
template = platform ? "%s-%s-%s" : "%s-%s"
|
249
|
-
end
|
250
|
-
|
251
|
-
if buildno # TODO Make this better.
|
252
|
-
buildno = Time.now.strftime("%H*60+%M")
|
253
|
-
version = "#{version}.#{buildno}"
|
254
|
-
end
|
255
|
-
|
256
|
-
template % [ name, version, platform ]
|
257
|
-
end
|
258
|
-
|
259
|
-
# Files to be included in package.
|
260
|
-
|
261
|
-
def files
|
262
|
-
project.filelist #+ [package.manifest_file]
|
263
|
-
end
|
264
|
-
|
265
|
-
# Transfer package file to storage location.
|
266
|
-
|
267
|
-
def transfer(file)
|
268
|
-
dest = File.join(store, File.basename(file)) # move to store, unless already there
|
269
|
-
dest = File.expand_path(dest)
|
270
|
-
mv(file, store) unless file == dest
|
271
|
-
end
|
272
|
-
|
273
|
-
# Report that a package has been built.
|
274
|
-
|
275
|
-
def report_package_built(type, file)
|
276
|
-
r = ''
|
277
|
-
r << "\n Successfully built #{type}"
|
278
|
-
r << "\n Name: #{package.name}"
|
279
|
-
r << "\n Version: #{package.version}"
|
280
|
-
r << "\n File: #{File.basename(file)}"
|
281
|
-
say r
|
282
|
-
end
|
283
|
-
|
284
|
-
# Report that packaging is complete.
|
285
|
-
|
286
|
-
def report_packaging_complete(size)
|
287
|
-
say "\nSuccessfully built #{size} packages at #{store}/."
|
288
|
-
end
|
289
|
-
|
290
|
-
end
|
291
|
-
|
292
|
-
end
|
data/lib/ratch/toolset/ruby/rdoc
DELETED
@@ -1,88 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ratch
|
2
|
-
|
3
|
-
# generate rdocs
|
4
|
-
#
|
5
|
-
# Generate Rdoc documentation. Settings are
|
6
|
-
# the same as the rdoc command's options.
|
7
|
-
|
8
|
-
main :rdoc do
|
9
|
-
config, output, input = *rdoc_configuration
|
10
|
-
|
11
|
-
file output => input do
|
12
|
-
rdoc_target(config)
|
13
|
-
end
|
14
|
-
|
15
|
-
file 'README' do
|
16
|
-
puts "OH YEH README"
|
17
|
-
end
|
18
|
-
|
19
|
-
build output
|
20
|
-
end
|
21
|
-
|
22
|
-
# Document target.
|
23
|
-
|
24
|
-
def rdoc_target(config)
|
25
|
-
output = config['op']
|
26
|
-
input = config.delete('include')
|
27
|
-
|
28
|
-
# Check for 'doc' directory.
|
29
|
-
# (Helps to ensure we're in the right place.)
|
30
|
-
#dir!(File.dirname(site))
|
31
|
-
|
32
|
-
# Remove old rdocs.
|
33
|
-
rm_r(output) if exist?(output) and safe?(output)
|
34
|
-
|
35
|
-
#input = input.collect{ |i| glob(i) }.flatten
|
36
|
-
vector = [input, config]
|
37
|
-
rdoc(vector.to_console)
|
38
|
-
|
39
|
-
insert_ads(output)
|
40
|
-
end
|
41
|
-
|
42
|
-
# Collect RDocs configuration.
|
43
|
-
|
44
|
-
def rdoc_configuration
|
45
|
-
config = configuration['rdoc'] || {}
|
46
|
-
|
47
|
-
config = {
|
48
|
-
'template' => 'html',
|
49
|
-
'op' => 'doc/rdoc',
|
50
|
-
'merge' => true,
|
51
|
-
'inline-source' => true,
|
52
|
-
'exclude' => [],
|
53
|
-
'include' => ['lib', '[A-Z]*']
|
54
|
-
}.merge(config)
|
55
|
-
|
56
|
-
if config['output']
|
57
|
-
config['op'] = config.delete('output')
|
58
|
-
end
|
59
|
-
|
60
|
-
output = config['op']
|
61
|
-
|
62
|
-
input = config['include'].collect do |i|
|
63
|
-
dir?(i) ? File.join(i,'**','*') : i
|
64
|
-
end
|
65
|
-
|
66
|
-
return config, output, input
|
67
|
-
end
|
68
|
-
|
69
|
-
# Insert an ad if available.
|
70
|
-
|
71
|
-
def insert_ads(site)
|
72
|
-
adfile = configuration['ad_file'] || 'meta/site_ad.html'
|
73
|
-
return unless adfile && File.file?(adfile)
|
74
|
-
adtext = File.read(adfile)
|
75
|
-
#puts
|
76
|
-
dirs = Dir.glob(File.join(site,'*/'))
|
77
|
-
dirs.each do |dir|
|
78
|
-
files = Dir.glob(File.join(dir, '**/*.html'))
|
79
|
-
files.each do |file|
|
80
|
-
html = file_read(file)
|
81
|
-
bodi = html.index('<body>')
|
82
|
-
html[bodi + 7] = "\n" + adtext
|
83
|
-
#print "Augmenting #{file}..."
|
84
|
-
file_write(file, html) unless dryrun?
|
85
|
-
#puts "[done]"
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
data/task/rdoc
DELETED
data/work/old/batchfile.rb
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
# TITLE:
|
2
|
-
#
|
3
|
-
# BatchFile
|
4
|
-
#
|
5
|
-
# COPYING:
|
6
|
-
#
|
7
|
-
# Copyright (c) 2007 Psi T Corp.
|
8
|
-
#
|
9
|
-
# This file is part of the ProUtils' Ratch program.
|
10
|
-
#
|
11
|
-
# Ratch 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
|
-
# Ratch 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 Ratch. If not, see <http://www.gnu.org/licenses/>.
|
23
|
-
|
24
|
-
#require 'shellwords'
|
25
|
-
require 'yaml'
|
26
|
-
require 'rbconfig' # replace with facets/rbsystem in future ?
|
27
|
-
#require 'facets/hash/merge' # for reverse_merge
|
28
|
-
|
29
|
-
require 'ratch/options'
|
30
|
-
|
31
|
-
require 'ratch/consoleutils'
|
32
|
-
require 'ratch/configutils'
|
33
|
-
require 'ratch/emailutils'
|
34
|
-
require 'ratch/fileutils'
|
35
|
-
require 'ratch/argvutils'
|
36
|
-
|
37
|
-
require 'ratch/taskable'
|
38
|
-
require 'ratch/buildable'
|
39
|
-
require 'ratch/batchable'
|
40
|
-
|
41
|
-
|
42
|
-
module Ratch
|
43
|
-
|
44
|
-
# Batch File class, is used as an executionm context for a
|
45
|
-
# ratch script.
|
46
|
-
|
47
|
-
class BatchFile < Module
|
48
|
-
|
49
|
-
include GeneralOptions
|
50
|
-
|
51
|
-
include ConsoleUtils
|
52
|
-
include ArgvUtils
|
53
|
-
include FileUtils
|
54
|
-
include ConfigUtils
|
55
|
-
include EmailUtils
|
56
|
-
|
57
|
-
include Buildable
|
58
|
-
include Taskable
|
59
|
-
include Batchable
|
60
|
-
|
61
|
-
# Quick start, equivalent to calling new.run(file).
|
62
|
-
|
63
|
-
#def self.start(file)
|
64
|
-
# new(file).call
|
65
|
-
#end
|
66
|
-
|
67
|
-
# New Batch File
|
68
|
-
|
69
|
-
def initialize(file)
|
70
|
-
abort "missing batch file -- #{file}" unless File.file?(file)
|
71
|
-
@file = file
|
72
|
-
end
|
73
|
-
|
74
|
-
# TODO What todo about arguments?
|
75
|
-
|
76
|
-
def call(arguments=nil)
|
77
|
-
script = File.read($0 = @file)
|
78
|
-
puts script
|
79
|
-
p $0
|
80
|
-
puts
|
81
|
-
eval(script, binding, $0) #instance_eval(script)
|
82
|
-
#@main.call if @main
|
83
|
-
task_manager.call_main
|
84
|
-
#run(:main) if task_manager.main
|
85
|
-
end
|
86
|
-
|
87
|
-
end
|
88
|
-
|
89
|
-
end
|
90
|
-
|
91
|
-
# Load TaskUtils directly into to main runspace.
|
92
|
-
|
93
|
-
#class << self
|
94
|
-
# include TaskUtils
|
95
|
-
#end
|
data/work/project-old.rb
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
# = TITLE:
|
2
|
-
#
|
3
|
-
# Project
|
4
|
-
#
|
5
|
-
# = COPYING:
|
6
|
-
#
|
7
|
-
# Copyright (c) 2007 Psi T Corp.
|
8
|
-
#
|
9
|
-
# This file is part of the ProUtils' Box program.
|
10
|
-
#
|
11
|
-
# Box 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
|
-
# Box 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 Box. If not, see <http://www.gnu.org/licenses/>.
|
23
|
-
|
24
|
-
require 'facets/filelist'
|
25
|
-
require 'box/general'
|
26
|
-
|
27
|
-
|
28
|
-
module Box
|
29
|
-
|
30
|
-
# Project Class
|
31
|
-
#
|
32
|
-
# The Project class contains three sets of metadata. The first is the
|
33
|
-
# typical general information about a project --title, description, homepage, etc.
|
34
|
-
# This information is essentially static. Once set, it will probably never vary.
|
35
|
-
# The second is default packaging informaiton. These both come from the General base
|
36
|
-
# class. The third set is default build information, which may vary well for various
|
37
|
-
# packages types, as this information may need to be overridden for specific
|
38
|
-
# platform builds and package formats. This information describes how to
|
39
|
-
# pack this project into various packages. Hecne it does not belong to the Package
|
40
|
-
# class itself.
|
41
|
-
|
42
|
-
class Project < General
|
43
|
-
|
44
|
-
|
45
|
-
# # Package formats to create (tar.gz, zip, gem, deb, etc.)
|
46
|
-
# # Defaults to 'zip' since it's the most universal.
|
47
|
-
# #
|
48
|
-
# # TODO: Fewer name choices please!!!
|
49
|
-
#
|
50
|
-
# attr_accessor :format, :formats, :type, :types do
|
51
|
-
# @format || ['zip']
|
52
|
-
# end
|
53
|
-
#
|
54
|
-
# # Where to store package files. Defaults to +pkg/.
|
55
|
-
# attr_accessor :store do
|
56
|
-
# @store || 'pkg'
|
57
|
-
# end
|
58
|
-
#
|
59
|
-
# # Where to stage a package.
|
60
|
-
# attr_accessor :stage # do
|
61
|
-
# # @stage || name-verison-platform
|
62
|
-
# #end
|
63
|
-
|
64
|
-
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
data/work/scrap/install
DELETED
@@ -1,89 +0,0 @@
|
|
1
|
-
# Magic Rollerball Installer
|
2
|
-
#
|
3
|
-
#
|
4
|
-
|
5
|
-
PROJECT_NAME = 'multiton'
|
6
|
-
PROJECT_VERSION = '2.1.0'
|
7
|
-
|
8
|
-
##################
|
9
|
-
|
10
|
-
require 'fileutils'
|
11
|
-
require 'rbconfig'
|
12
|
-
|
13
|
-
include FileUtils::DryRun
|
14
|
-
|
15
|
-
|
16
|
-
rubyprefix = Config::CONFIG['prefix']
|
17
|
-
sitelibdir = Config::CONFIG['sitelibdir']
|
18
|
-
|
19
|
-
|
20
|
-
PREFIX = ENV['PREFIX'] || rubyprefix
|
21
|
-
|
22
|
-
RUBYLIB = if PREFIX == rubyprefix then
|
23
|
-
sitelibdir
|
24
|
-
else
|
25
|
-
File.join(PREFIX, sitelibdir[rubyprefix.size..-1])
|
26
|
-
end
|
27
|
-
|
28
|
-
ROLLLIB = File.join(File.dirname(RUBYLIB), "rolls", File.basename(RUBYLIB))
|
29
|
-
|
30
|
-
RUBY_DEBUG = ENV['RUBY_DEBUG']
|
31
|
-
RUBY_FLAGS = ENV['RUBY_FLAGS'] ||
|
32
|
-
"-w -I#{%w(lib ext bin test).join(File::PATH_SEPARATOR)}" +
|
33
|
-
(RUBY_DEBUG ? " #{RUBY_DEBUG}" : '')
|
34
|
-
|
35
|
-
p PREFIX
|
36
|
-
p RUBYLIB
|
37
|
-
p ROLLLIB
|
38
|
-
#p RUBY_DEBUG
|
39
|
-
#p RUBY_FLAGS
|
40
|
-
|
41
|
-
HERE = File.expand_path(File.dirname(__FILE__))
|
42
|
-
DEST = File.join(ROLLLIB, PROJECT_NAME, PROJECT_VERSION)
|
43
|
-
|
44
|
-
files = Dir.glob("**/*")
|
45
|
-
files -= Dir.glob("INSTALL")
|
46
|
-
files -= Dir.glob("pkg/**/*") + ['pkg']
|
47
|
-
|
48
|
-
p HERE
|
49
|
-
p DEST
|
50
|
-
p files
|
51
|
-
|
52
|
-
mkdir_p DEST unless test ?d, DEST
|
53
|
-
|
54
|
-
|
55
|
-
# Install libs
|
56
|
-
|
57
|
-
def project_install(files)
|
58
|
-
bin_files = files.grep(/^bin/)
|
59
|
-
|
60
|
-
(files - bin_files).each do |file|
|
61
|
-
install file, DEST, :mode => 0444
|
62
|
-
end
|
63
|
-
|
64
|
-
bin_files.each do |file|
|
65
|
-
install file, DEST, :mode => 0555
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
|
70
|
-
# Change modes
|
71
|
-
|
72
|
-
def project_chmod(files)
|
73
|
-
bin_files = Files.grep(/^bin/)
|
74
|
-
|
75
|
-
(files - bin_files).each do |file|
|
76
|
-
chmod File.join(DEST, file), 0444
|
77
|
-
end
|
78
|
-
|
79
|
-
bin_files.each do |file|
|
80
|
-
chmod File.join(DEST, file), 0555
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
|
85
|
-
if HERE == DEST
|
86
|
-
project_chmod(files)
|
87
|
-
else
|
88
|
-
project_install(files)
|
89
|
-
end
|
data/work/scrap/install.0
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ratch
|
2
|
-
|
3
|
-
# install package to site_ruby
|
4
|
-
|
5
|
-
# This tool installs the package to site_ruby
|
6
|
-
# using Ruby's defualt configuration settings.
|
7
|
-
# If you want to change these you can can supply
|
8
|
-
# config settings for 'prefix' and/or 'sitedir'.
|
9
|
-
|
10
|
-
system_prefix = Config::CONFIG['prefix']
|
11
|
-
system_libdir = Config::CONFIG['sitelibdir']
|
12
|
-
|
13
|
-
config = config_load('install')
|
14
|
-
|
15
|
-
prefix = config['prefix'] || system_prefix
|
16
|
-
libdir = config['libdir']
|
17
|
-
|
18
|
-
unless libdir
|
19
|
-
if (prefix == system_prefix) then
|
20
|
-
libdir = system_libdir
|
21
|
-
else
|
22
|
-
libdir = File.join(prefix, system_libdir[system_prefix.size..-1])
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
# TODO Probably should get files from manifest, if it exists.
|
27
|
-
# files = projectinfo.filelist
|
28
|
-
files = Dir.glob("{lib,ext,bin}/**/*").select{ |f| file?(f) }
|
29
|
-
|
30
|
-
lib_files = files.grep(/^(lib|ext)/)
|
31
|
-
bin_files = files.grep(/^bin/)
|
32
|
-
|
33
|
-
# Copy files to proper locations.
|
34
|
-
|
35
|
-
lib_files.each do |file|
|
36
|
-
dest = File.dirname(file).sub('lib/', '')
|
37
|
-
dest = File.join(libdir, dest)
|
38
|
-
#dest.sub!(/(core|more)\//, '') # SPECIAL FOR FACETS !!!!!
|
39
|
-
mkdir_p dest unless dir?(dest)
|
40
|
-
install file, dest, :mode => 0444
|
41
|
-
end
|
42
|
-
|
43
|
-
bin_files.each do |file|
|
44
|
-
dest = File.dirname(file)
|
45
|
-
dest = File.join(prefix, dest)
|
46
|
-
mkdir_p dest unless dir?(dest)
|
47
|
-
install file, dest, :mode => 0555
|
48
|
-
end
|
49
|
-
|