Tamar 0.7.2 → 0.7.3
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/HISTORY +19 -2
- data/Rakefile +5 -0
- data/Tamar.gemspec +27 -2
- data/VERSION +1 -1
- data/src/luadist/CMakeLists.txt +42 -0
- data/src/luadist/COPYRIGHT +34 -0
- data/src/luadist/README +95 -0
- data/src/luadist/dist.cmake +436 -0
- data/src/luadist/dist.info +20 -0
- data/src/luadist/dist/config.lua.in +108 -0
- data/src/luadist/dist/dep.lua +283 -0
- data/src/luadist/dist/fetch.lua +234 -0
- data/src/luadist/dist/init.lua +616 -0
- data/src/luadist/dist/log.lua +37 -0
- data/src/luadist/dist/manifest.lua +204 -0
- data/src/luadist/dist/package.lua +271 -0
- data/src/luadist/dist/persist.lua +132 -0
- data/src/luadist/dist/sys.lua +436 -0
- data/src/luadist/doc/index.html +147 -0
- data/src/luadist/doc/luadoc.css +286 -0
- data/src/luadist/doc/modules/dist.dep.html +489 -0
- data/src/luadist/doc/modules/dist.fetch.html +197 -0
- data/src/luadist/doc/modules/dist.html +547 -0
- data/src/luadist/doc/modules/dist.log.html +187 -0
- data/src/luadist/doc/modules/dist.manifest.html +235 -0
- data/src/luadist/doc/modules/dist.package.html +323 -0
- data/src/luadist/doc/modules/dist.persist.html +345 -0
- data/src/luadist/doc/modules/dist.sys.html +1058 -0
- data/src/luadist/luadist +443 -0
- metadata +27 -2
data/src/luadist/luadist
ADDED
@@ -0,0 +1,443 @@
|
|
1
|
+
#!/usr/bin/env lua
|
2
|
+
--- Simple LuaDist CLI interface
|
3
|
+
-- This script uses the exposed LuaDist APIs to provide commandline interface to LuaDist features.
|
4
|
+
-- Peter Kapec, Peter Drahoš LuaDist Project, 2010
|
5
|
+
|
6
|
+
local dist = require "dist"
|
7
|
+
local config = require "dist.config"
|
8
|
+
local sys = require "dist.sys"
|
9
|
+
local persist = require "dist.persist"
|
10
|
+
|
11
|
+
--- Display help
|
12
|
+
local function help()
|
13
|
+
print ([[
|
14
|
+
LuaDist ]] .. config.version .. [[ - Simple Lua Distribution and Module Deployment System
|
15
|
+
Usage: luadist (depldir) [command] (names) (-variables)
|
16
|
+
|
17
|
+
where [...] are required and (...) are optional:
|
18
|
+
depldir - Optional path to the deployment directory LuaDist will operate on.
|
19
|
+
command - Specifies the operation to be executed:
|
20
|
+
help - Display detailed help about command.
|
21
|
+
install - Install/Update Dists from repository.
|
22
|
+
remove - Remove deployed Dists.
|
23
|
+
pack - Pack deployed Dists.
|
24
|
+
search - Search repositories for Dists.
|
25
|
+
list - List deployed Dists.
|
26
|
+
info - Show details about Dist from repository.
|
27
|
+
manifest - Generate dist manifest file for repository.
|
28
|
+
make - Build and deploy dist from path and URL.
|
29
|
+
names - A list of names (case sensitive), each name can contain version constraints.
|
30
|
+
variables - Configuration options or CMake settings to be passed into the build process.
|
31
|
+
Examples:
|
32
|
+
installing luasocket and md5
|
33
|
+
> luadist install luasocket md5
|
34
|
+
installing Lua 5.1.4 to its own deployment directory.
|
35
|
+
> luadist ./example install lua-5.1.4
|
36
|
+
switch to newest LuaJIT 1.x
|
37
|
+
> luadist ./example remove lua
|
38
|
+
> luadist ./example install luajit<2
|
39
|
+
update luajit to latest version
|
40
|
+
> luadist ./example install luajit
|
41
|
+
|
42
|
+
For additional help invoke
|
43
|
+
>luadist help command
|
44
|
+
]])
|
45
|
+
end
|
46
|
+
|
47
|
+
--- Commands the CLI provides
|
48
|
+
local commands
|
49
|
+
commands = {
|
50
|
+
-- Display help for any other command or luadist in general.
|
51
|
+
["help"] = {
|
52
|
+
help = [[
|
53
|
+
Usage: luadist help (command)
|
54
|
+
|
55
|
+
This will show detailed description about (command).
|
56
|
+
]],
|
57
|
+
run = function (_, cmds)
|
58
|
+
if #cmds == 0 then
|
59
|
+
help()
|
60
|
+
else
|
61
|
+
for i = 1, #cmds do
|
62
|
+
local command = cmds[i]
|
63
|
+
if commands[command] then
|
64
|
+
print(commands[command].help)
|
65
|
+
else
|
66
|
+
print("Unknown command: " .. command)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
return 0
|
71
|
+
end
|
72
|
+
},
|
73
|
+
-- Install dist
|
74
|
+
["install"] = {
|
75
|
+
help = [[
|
76
|
+
Usage: luadist (depldir) install (names) (-variables)
|
77
|
+
|
78
|
+
The install command can install and update dists by their (names), each name can contain additional version constraints.
|
79
|
+
When constraints are not specified then the newest found is installed.
|
80
|
+
The optional (depldir) path is used to specify deployment directory, by default dists install directly into LuaDist.
|
81
|
+
For source dists (-variables) can contain CMake arguments using CMake's -D format and must be properly quoted.
|
82
|
+
Updating all deployed dists is possible by supplying no names to install.
|
83
|
+
]],
|
84
|
+
run = function (depldir, names, variables)
|
85
|
+
local ok, err = dist.install(names, depldir, manifest, variables)
|
86
|
+
if not ok then print (err) return 1 end
|
87
|
+
print("Installation succesfull.")
|
88
|
+
return 0
|
89
|
+
end
|
90
|
+
},
|
91
|
+
["test"] = {
|
92
|
+
help = [[
|
93
|
+
Usage: luadist (report) test (names) (-variables)
|
94
|
+
|
95
|
+
The test command can test installation of by their (names), each name can contain additional version constraints.
|
96
|
+
When constraints are not specified then the newest found is installed.
|
97
|
+
The optional (report) file is used to specify what type of report to generate, by default test will not generate a report file and will only print to console.
|
98
|
+
For source dists (-variables) can contain CMake arguments using CMake's -D format and must be properly quoted.
|
99
|
+
When a report file is supplied LuaDist will also generate packed binary dists from the test deployment, this is usefull when generating multiple binary dists from source.
|
100
|
+
]],
|
101
|
+
run = function (report, names, variables)
|
102
|
+
local function saveHtml(filename, reportTable)
|
103
|
+
local report = {}
|
104
|
+
-- beginning of HTML code
|
105
|
+
report[#report + 1] = [[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
106
|
+
<xhtml xmlns="http://www.w3.org/1999/xhtml">
|
107
|
+
<head>
|
108
|
+
<title>Report - building packages in LuaDist</title>
|
109
|
+
<style type="text/css">
|
110
|
+
body
|
111
|
+
{background-color: #d0e4fe;}
|
112
|
+
</style>
|
113
|
+
</head>
|
114
|
+
<body>
|
115
|
+
<p>
|
116
|
+
<u><h2>Results of building packages</h2></u>
|
117
|
+
</p>
|
118
|
+
]]
|
119
|
+
|
120
|
+
for distName, distTable in pairs (reportTable) do
|
121
|
+
-- first add dist name
|
122
|
+
report[#report + 1] = "<ul>\n <li style=\"font-size:18px;font-weight:bold;\">"
|
123
|
+
report[#report + 1] = distName
|
124
|
+
report[#report + 1] = "</li>\n <ul>"
|
125
|
+
|
126
|
+
for archName, archTable in pairs (distTable) do
|
127
|
+
-- add architecture information
|
128
|
+
report[#report + 1] = "\n <li style=\"font-weight:bold\">"
|
129
|
+
report[#report + 1] = archName
|
130
|
+
report[#report + 1] = "</li>"
|
131
|
+
-- and for the architecture add results of test
|
132
|
+
report[#report + 1] = "\n <ul>\n <li>Installation result: "
|
133
|
+
|
134
|
+
-- if result is "FAILED ..." and not just "OK"
|
135
|
+
if #archTable.result > 2 then
|
136
|
+
report[#report + 1] = "<span style=\"color:red\">"
|
137
|
+
report[#report + 1] = archTable.result
|
138
|
+
report[#report + 1] = "</span>"
|
139
|
+
else
|
140
|
+
report[#report + 1] = archTable.result
|
141
|
+
end
|
142
|
+
|
143
|
+
-- add date of test to given architecture
|
144
|
+
report[#report + 1] = "</li>\n <li>Date of test: "
|
145
|
+
report[#report + 1] = os.date ("!%c", os.time (archTable.date))
|
146
|
+
report[#report + 1] = "</li>\n </ul>"
|
147
|
+
end
|
148
|
+
|
149
|
+
-- end of information about dist
|
150
|
+
report[#report + 1] = "\n </ul>\n</ul>\n<hr/>\n"
|
151
|
+
end
|
152
|
+
|
153
|
+
-- end of HTML code
|
154
|
+
report[#report + 1] = "</body>\n</xhtml>\n"
|
155
|
+
|
156
|
+
-- transform an array of strings into one long string
|
157
|
+
report = table.concat (report)
|
158
|
+
|
159
|
+
-- write the HTML code to a file
|
160
|
+
local output = io.open (filename, "w")
|
161
|
+
output:write (report)
|
162
|
+
output:close ()
|
163
|
+
return true
|
164
|
+
end
|
165
|
+
|
166
|
+
-- Suppress standard output in tests
|
167
|
+
config.message = nil
|
168
|
+
|
169
|
+
-- Get requested dists and repo manifest
|
170
|
+
local manifest = dist.filterManifest()
|
171
|
+
local dists, err = dist.findDists(names, manifest)
|
172
|
+
if not dists then print(err) return 1 end
|
173
|
+
|
174
|
+
-- Temporary deployment dir
|
175
|
+
local temp = sys.path(config.temp, "luadist-test")
|
176
|
+
|
177
|
+
print ("\nTest results for " .. config.arch .. "-" .. config.type .. ":\n===========================\n")
|
178
|
+
|
179
|
+
-- Generate the report
|
180
|
+
local archType = config.arch .. "-" .. config.type
|
181
|
+
|
182
|
+
local test = {}
|
183
|
+
for i = 1, #dists do
|
184
|
+
local info = dists[i]
|
185
|
+
local name = info.name .. "-" .. info.version
|
186
|
+
local depl = sys.path(temp, name)
|
187
|
+
|
188
|
+
local entry = {}
|
189
|
+
entry.date = os.date("!*t")
|
190
|
+
|
191
|
+
io.write("\t" .. name)
|
192
|
+
io.flush()
|
193
|
+
-- try to install the module
|
194
|
+
local ok, err = dist.install(name, depl, manifest, variables)
|
195
|
+
if not ok then
|
196
|
+
io.write(" FAILED: "..err.."\n")
|
197
|
+
entry.result = "FAILED: "..err
|
198
|
+
else
|
199
|
+
io.write(" OK.\n")
|
200
|
+
entry.result = "OK."
|
201
|
+
if report then dist.pack(name, depl) end
|
202
|
+
end
|
203
|
+
io.flush()
|
204
|
+
|
205
|
+
test[name] = {
|
206
|
+
[archType] = entry
|
207
|
+
}
|
208
|
+
end
|
209
|
+
|
210
|
+
-- Save report if needed
|
211
|
+
if report then
|
212
|
+
if report:match("html$") then
|
213
|
+
saveHtml(report, test)
|
214
|
+
else
|
215
|
+
persist.saveManifest(report, test)
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
-- Cleanup
|
220
|
+
sys.delete(sys.path(temp))
|
221
|
+
|
222
|
+
return 0
|
223
|
+
end
|
224
|
+
},
|
225
|
+
-- Update dist
|
226
|
+
["remove"] = {
|
227
|
+
help = [[
|
228
|
+
Usage: luadist (depldir) remove (names)
|
229
|
+
|
230
|
+
The remove command will remove deployed dists specified by (names) from the deployment directory (depldir).
|
231
|
+
When (depldir) is not specified, then the dist will be removed from LuaDist.
|
232
|
+
When no names are supplied LuaDist will delete the deployment entirely.
|
233
|
+
NOTE: LuaDist does not do any dist dependency breakage tests on remove!
|
234
|
+
WARNING! Be careful when removing whole deployments. You may loose data and in worst case break your system.
|
235
|
+
]],
|
236
|
+
run = function (depldir, names)
|
237
|
+
local ok, err = dist.remove(names, depldir)
|
238
|
+
if not ok then print (err) return 1 end
|
239
|
+
print("Removal succesfull.")
|
240
|
+
return 0
|
241
|
+
end
|
242
|
+
},
|
243
|
+
-- Pack dist
|
244
|
+
["pack"] = {
|
245
|
+
help = [[
|
246
|
+
Usage: luadist (depldir) pack (names)
|
247
|
+
|
248
|
+
The pack command will pack installed dist identified by (names) from the deployment directory (depldir).
|
249
|
+
When (depldir) is not specified the dist will be packed from LuaDist.
|
250
|
+
The resulting dist files will beplaced into current directory.
|
251
|
+
When no names are supplied LuaDist will pack all dists in the deployment.
|
252
|
+
]],
|
253
|
+
run = function (depldir, names)
|
254
|
+
local ok, err = dist.pack(names, depldir)
|
255
|
+
if not ok then print (err) return 1 end
|
256
|
+
print("Pack successful.")
|
257
|
+
return 0
|
258
|
+
end
|
259
|
+
},
|
260
|
+
-- Search for dist
|
261
|
+
["search"] = {
|
262
|
+
help = [[
|
263
|
+
Usage: luadist search (names)
|
264
|
+
|
265
|
+
The search command will search repositories for all dists satisfing manes.
|
266
|
+
Wildcard character * can be used to search for.
|
267
|
+
When no search arguments are specified then all available dists will be listed.
|
268
|
+
Search results are filtered and display only dists that can be installed for the platform LuaDist is running on.
|
269
|
+
]],
|
270
|
+
run = function (_, names)
|
271
|
+
local dists = dist.findDists(names)
|
272
|
+
if not dists then print("\nNo dists found!")return 1 end
|
273
|
+
print("\nSearch result:\n===============\n")
|
274
|
+
for i = 1, #dists do
|
275
|
+
local dist = dists[i]
|
276
|
+
print("\t" .. dist.name .. "-" .. dist.version, "(" .. dist.arch .. "-" .. dist.type .. ")")
|
277
|
+
end
|
278
|
+
return 0
|
279
|
+
end
|
280
|
+
},
|
281
|
+
-- List deployed dists
|
282
|
+
["list"] = {
|
283
|
+
help = [[
|
284
|
+
Usage: luadist (depldir) list (names)
|
285
|
+
|
286
|
+
The list command will list deployed dists containing any occurance of a string from (strings) in their name.
|
287
|
+
When no list arguments are specified then all deployed dists will be listed.
|
288
|
+
]],
|
289
|
+
run = function (depldir, names)
|
290
|
+
local dists = dist.findDists(names, dist.getDeployed(depldir))
|
291
|
+
print("\nDeployed dists:\n===============\n")
|
292
|
+
for i = 1, #dists do
|
293
|
+
local dist = dists[i]
|
294
|
+
if dist.provided then
|
295
|
+
print("\t" .. dist.name .. "-" .. dist.version, "( provided by: " .. dist.provided .. ")")
|
296
|
+
else
|
297
|
+
print("\t" .. dist.name .. "-" .. dist.version, "(" .. dist.arch .. "-" .. dist.type .. ")")
|
298
|
+
end
|
299
|
+
end
|
300
|
+
return 0
|
301
|
+
end
|
302
|
+
},
|
303
|
+
-- Generate manifest
|
304
|
+
["manifest"] = {
|
305
|
+
help = [[
|
306
|
+
Usage: luadist (dir) manifest
|
307
|
+
|
308
|
+
The manifest command will create a dist.manifest file for the directory (dir) or current directory.
|
309
|
+
This file is used as generated static index of dists contained in remote URL repositories where LuaDist cannot fetch directory listings.
|
310
|
+
When you plan to make an online repository make sure it contains and up to date manifest.
|
311
|
+
]],
|
312
|
+
run = function (dir)
|
313
|
+
local manifest, err = dist.getManifest(dir)
|
314
|
+
if not manifest then return nil, "Could not generate manifest: " .. err end
|
315
|
+
local ok, err = persist.saveManifest("dist.manifest", manifest)
|
316
|
+
if not ok then return nil, "Could not save manifest: " .. err end
|
317
|
+
print("Manifest generated.")
|
318
|
+
return 0
|
319
|
+
end
|
320
|
+
},
|
321
|
+
-- Build a unpacked dist directory
|
322
|
+
["make"] = {
|
323
|
+
help = [[
|
324
|
+
Usage: luadist (depldir) make (paths) (variables)
|
325
|
+
|
326
|
+
The make command will make and deploy dists into (depldir) from local (paths) or current directory if no paths are specified.
|
327
|
+
This command is usefull for development of dists or in cases where you want to force deployment of dists.
|
328
|
+
Make sure (paths) contain valid dist.info files or point to .dist or .zip archives.
|
329
|
+
Optional CMake (variables) can be passed to the build process when dealing with source dists using -D[CMakeVariable]= format.
|
330
|
+
]],
|
331
|
+
run = function (depldir, paths, variables)
|
332
|
+
local ok, err = dist.deploy(paths, depldir, variables)
|
333
|
+
if not ok then print(err) return 1 end
|
334
|
+
print("Make successful.")
|
335
|
+
return 0
|
336
|
+
end
|
337
|
+
},
|
338
|
+
-- Display info about dist
|
339
|
+
["info"] = {
|
340
|
+
help = [[
|
341
|
+
Usage: luadist info (names)
|
342
|
+
|
343
|
+
Info command will print information about the dists identified by (name) from repository.
|
344
|
+
In case names are satisfied by multiple dist versions, only the most recent version will be displayed.
|
345
|
+
]],
|
346
|
+
run = function (depldir, names)
|
347
|
+
local dists = dist.findDists(names)
|
348
|
+
if not dists then print("No dists found!") return 1 end
|
349
|
+
for i = 1, #dists do
|
350
|
+
local info = dists[i]
|
351
|
+
print("\n" .. info.name .. "-" .. info.version)
|
352
|
+
print("Description: " .. (info.desc or "not-available"))
|
353
|
+
print("Author: " .. (info.author or "not-available" ))
|
354
|
+
print("Maintainer: " .. (info.maintainer or "not-available" ))
|
355
|
+
print("Url: " .. (info.url or "not-available" ))
|
356
|
+
print("License: " .. (info.license or "not-available" ))
|
357
|
+
end
|
358
|
+
return 0
|
359
|
+
end
|
360
|
+
},
|
361
|
+
}
|
362
|
+
|
363
|
+
--- Handle commandline arguments
|
364
|
+
local n, dir, command, names, variables = nil, nil, nil, {}, {}
|
365
|
+
|
366
|
+
-- Determine deployment and command
|
367
|
+
if not commands[arg[1]] and commands[arg[2]] then
|
368
|
+
dir = arg[1]
|
369
|
+
command = arg[2]
|
370
|
+
n = 3
|
371
|
+
elseif commands[arg[1]] then
|
372
|
+
dir = dist.getDeployment()
|
373
|
+
command = arg[1]
|
374
|
+
n = 2
|
375
|
+
else
|
376
|
+
-- No Command, print help
|
377
|
+
help()
|
378
|
+
return 0
|
379
|
+
end
|
380
|
+
|
381
|
+
-- Helper split function for argument to table conversion
|
382
|
+
function split(str, pat)
|
383
|
+
local t, fpat, last_end = {}, "(.-)" .. pat, 1
|
384
|
+
local s, e, cap = str:find(fpat, 1)
|
385
|
+
while s do
|
386
|
+
if s ~= 1 or cap ~= "" then
|
387
|
+
table.insert(t,cap)
|
388
|
+
end
|
389
|
+
last_end = e+1
|
390
|
+
s, e, cap = str:find(fpat, last_end)
|
391
|
+
end
|
392
|
+
if last_end <= #str then
|
393
|
+
cap = str:sub(last_end)
|
394
|
+
table.insert(t, cap)
|
395
|
+
end
|
396
|
+
return t
|
397
|
+
end
|
398
|
+
|
399
|
+
-- Collect settings, names and variables
|
400
|
+
for i = n, #arg do
|
401
|
+
-- Collect names
|
402
|
+
if arg[i]:match("^%-") then
|
403
|
+
-- Arguments
|
404
|
+
if arg[i]:match("^%-D") then
|
405
|
+
local cvar, value = arg[i]:match("^%-D(.-)=(.*)")
|
406
|
+
variables[cvar] = value
|
407
|
+
elseif arg[i]:match("^%-") then
|
408
|
+
local var, value = arg[i]:match("^%-(.-)=(.*)")
|
409
|
+
-- Compare to variables from config.lua and change type accordingly
|
410
|
+
if config[var]~=nil then
|
411
|
+
-- Change to number
|
412
|
+
if type(config[var])=="number" then
|
413
|
+
value = tonumber(value)
|
414
|
+
end
|
415
|
+
-- If its a boolean, everything else but "false" counts as true.
|
416
|
+
if type(config[var])=="boolean" then
|
417
|
+
if value == "false" or value == "0" or value == "off" then value = false else value = true end
|
418
|
+
end
|
419
|
+
-- If its a table
|
420
|
+
if type(config[var])=="table" then
|
421
|
+
value = split( value, "," )
|
422
|
+
end
|
423
|
+
-- Set the value
|
424
|
+
config[var] = value
|
425
|
+
else
|
426
|
+
print("Invalid configuration option!", arg[i], "\n")
|
427
|
+
help()
|
428
|
+
return 1
|
429
|
+
end
|
430
|
+
else
|
431
|
+
print("Invalid argument!", arg[i], "\n")
|
432
|
+
help()
|
433
|
+
return 1
|
434
|
+
end
|
435
|
+
else
|
436
|
+
table.insert(names, arg[i])
|
437
|
+
end
|
438
|
+
end
|
439
|
+
|
440
|
+
-- Run command
|
441
|
+
commands[command].run(dir, names, variables)
|
442
|
+
return 0
|
443
|
+
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: Tamar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.7.
|
5
|
+
version: 0.7.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Evan Wies, David Love
|
@@ -122,6 +122,31 @@ files:
|
|
122
122
|
- Rakefile
|
123
123
|
- Tamar.gemspec
|
124
124
|
- VERSION
|
125
|
+
- src/luadist/CMakeLists.txt
|
126
|
+
- src/luadist/COPYRIGHT
|
127
|
+
- src/luadist/README
|
128
|
+
- src/luadist/dist.cmake
|
129
|
+
- src/luadist/dist.info
|
130
|
+
- src/luadist/dist/config.lua.in
|
131
|
+
- src/luadist/dist/dep.lua
|
132
|
+
- src/luadist/dist/fetch.lua
|
133
|
+
- src/luadist/dist/init.lua
|
134
|
+
- src/luadist/dist/log.lua
|
135
|
+
- src/luadist/dist/manifest.lua
|
136
|
+
- src/luadist/dist/package.lua
|
137
|
+
- src/luadist/dist/persist.lua
|
138
|
+
- src/luadist/dist/sys.lua
|
139
|
+
- src/luadist/doc/index.html
|
140
|
+
- src/luadist/doc/luadoc.css
|
141
|
+
- src/luadist/doc/modules/dist.dep.html
|
142
|
+
- src/luadist/doc/modules/dist.fetch.html
|
143
|
+
- src/luadist/doc/modules/dist.html
|
144
|
+
- src/luadist/doc/modules/dist.log.html
|
145
|
+
- src/luadist/doc/modules/dist.manifest.html
|
146
|
+
- src/luadist/doc/modules/dist.package.html
|
147
|
+
- src/luadist/doc/modules/dist.persist.html
|
148
|
+
- src/luadist/doc/modules/dist.sys.html
|
149
|
+
- src/luadist/luadist
|
125
150
|
has_rdoc: true
|
126
151
|
homepage: http://rubyluabridge.rubyforge.org
|
127
152
|
licenses:
|
@@ -136,7 +161,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
136
161
|
requirements:
|
137
162
|
- - ">="
|
138
163
|
- !ruby/object:Gem::Version
|
139
|
-
hash:
|
164
|
+
hash: 2597924468305270284
|
140
165
|
segments:
|
141
166
|
- 0
|
142
167
|
version: "0"
|