1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
--- Module implementing the luarocks "download" command.
-- Download a rock from the repository.
local cmd_download = {}
local util = require("luarocks.util")
local download = require("luarocks.download")
function cmd_download.add_to_parser(parser)
local cmd = parser:command("download", "Download a specific rock file from a rocks server.", util.see_also())
cmd:argument("name", "Name of the rock.")
:args("?")
:action(util.namespaced_name_action)
cmd:argument("version", "Version of the rock.")
:args("?")
cmd:flag("--all", "Download all files if there are multiple matches.")
cmd:mutex(
cmd:flag("--source", "Download .src.rock if available."),
cmd:flag("--rockspec", "Download .rockspec if available."),
cmd:option("--arch", "Download rock for a specific architecture."))
cmd:flag("--check-lua-versions", "If the rock can't be found, check repository "..
"and report if it is available for another Lua version.")
end
--- Driver function for the "download" command.
-- @return boolean or (nil, string): true if successful or nil followed
-- by an error message.
function cmd_download.command(args)
if not args.name and not args.all then
return nil, "Argument missing. "..util.see_help("download")
end
args.name = args.name or ""
local arch
if args.source then
arch = "src"
elseif args.rockspec then
arch = "rockspec"
elseif args.arch then
arch = args.arch
end
local dl, err = download.download(arch, args.name, args.namespace, args.version, args.all, args.check_lua_versions)
return dl and true, err
end
return cmd_download
|