aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/luarocks/admin/cmd/add.tl (renamed from src/luarocks/admin/cmd/add.lua)27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/luarocks/admin/cmd/add.lua b/src/luarocks/admin/cmd/add.tl
index aa444c50..e544be96 100644
--- a/src/luarocks/admin/cmd/add.lua
+++ b/src/luarocks/admin/cmd/add.tl
@@ -1,7 +1,8 @@
1 1
2--- Module implementing the luarocks-admin "add" command. 2--- Module implementing the luarocks-admin "add" command.
3-- Adds a rock or rockspec to a rocks server. 3-- Adds a rock or rockspec to a rocks server.
4local add = {} 4local record add
5end
5 6
6local cfg = require("luarocks.core.cfg") 7local cfg = require("luarocks.core.cfg")
7local util = require("luarocks.util") 8local util = require("luarocks.util")
@@ -11,10 +12,14 @@ local fs = require("luarocks.fs")
11local cache = require("luarocks.admin.cache") 12local cache = require("luarocks.admin.cache")
12local index = require("luarocks.admin.index") 13local index = require("luarocks.admin.index")
13 14
14function add.add_to_parser(parser) 15local type Parser = require("luarocks.vendor.argparse").Parser
16
17local type Args = require("luarocks.core.types.args").Args
18
19function add.add_to_parser(parser: Parser)
15 local cmd = parser:command("add", "Add a rock or rockspec to a rocks server.", util.see_also()) 20 local cmd = parser:command("add", "Add a rock or rockspec to a rocks server.", util.see_also())
16 21
17 cmd:argument("rock", "A local rockspec or rock file.") 22 cmd:argument("rocks", "A local rockspec or rock file.")
18 :args("+") 23 :args("+")
19 24
20 cmd:option("--server", "The server to use. If not given, the default server ".. 25 cmd:option("--server", "The server to use. If not given, the default server "..
@@ -35,11 +40,7 @@ local function zip_manifests()
35 end 40 end
36end 41end
37 42
38local function add_files_to_server(refresh, rockfiles, server, upload_server, do_index) 43local function add_files_to_server(refresh: boolean, rockfiles: {string}, server: string, upload_server: {string: string}, do_index: boolean): boolean, string, string
39 assert(type(refresh) == "boolean" or not refresh)
40 assert(type(rockfiles) == "table")
41 assert(type(server) == "string")
42 assert(type(upload_server) == "table" or not upload_server)
43 44
44 local download_url, login_url = cache.get_server_urls(server, upload_server) 45 local download_url, login_url = cache.get_server_urls(server, upload_server)
45 local at = fs.current_dir() 46 local at = fs.current_dir()
@@ -107,7 +108,7 @@ local function add_files_to_server(refresh, rockfiles, server, upload_server, do
107 108
108 -- TODO abstract away explicit 'curl' call 109 -- TODO abstract away explicit 'curl' call
109 110
110 local cmd 111 local cmd: string
111 if protocol == "rsync" then 112 if protocol == "rsync" then
112 local srv, path = server_path:match("([^/]+)(/.+)") 113 local srv, path = server_path:match("([^/]+)(/.+)")
113 cmd = cfg.variables.RSYNC.." "..cfg.variables.RSYNCFLAGS.." -e ssh "..local_cache.."/ "..user.."@"..srv..":"..path.."/" 114 cmd = cfg.variables.RSYNC.." "..cfg.variables.RSYNCFLAGS.." -e ssh "..local_cache.."/ "..user.."@"..srv..":"..path.."/"
@@ -124,10 +125,10 @@ local function add_files_to_server(refresh, rockfiles, server, upload_server, do
124 return fs.execute(cmd) 125 return fs.execute(cmd)
125end 126end
126 127
127function add.command(args) 128function add.command(args: Args): boolean, string, string --!
128 local server, server_table = cache.get_upload_server(args.add_server or args.server) 129 local server, server_table, err = cache.get_upload_server(args.add_server or args.server)
129 if not server then return nil, server_table end 130 if not server then return nil, err end
130 return add_files_to_server(not args.no_refresh, args.rock, server, server_table, args.index) 131 return add_files_to_server(not args.no_refresh, args.rocks, server, server_table, args.index)
131end 132end
132 133
133 134