aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/luarocks/cmd/purge.tl (renamed from src/luarocks/cmd/purge.lua)24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/luarocks/cmd/purge.lua b/src/luarocks/cmd/purge.tl
index 30811ddf..9d8eacc1 100644
--- a/src/luarocks/cmd/purge.lua
+++ b/src/luarocks/cmd/purge.tl
@@ -1,19 +1,25 @@
1 1
2--- Module implementing the LuaRocks "purge" command. 2--- Module implementing the LuaRocks "purge" command.
3-- Remove all rocks from a given tree. 3-- Remove all rocks from a given tree.
4local purge = {} 4local record purge
5 needs_lock: function(Args): boolean
6end
5 7
6local util = require("luarocks.util") 8local util = require("luarocks.util")
7local path = require("luarocks.path") 9local path = require("luarocks.path")
8local search = require("luarocks.search") 10local search = require("luarocks.search")
9local vers = require("luarocks.core.vers") 11local vers = require("luarocks.core.vers")
10local repos = require("luarocks.repos") 12local repo_writer = require("luarocks.repo_writer")
11local writer = require("luarocks.manif.writer")
12local cfg = require("luarocks.core.cfg") 13local cfg = require("luarocks.core.cfg")
13local remove = require("luarocks.remove") 14local remove = require("luarocks.remove")
14local queries = require("luarocks.queries") 15local queries = require("luarocks.queries")
15 16
16function purge.add_to_parser(parser) 17local type Parser = require("luarocks.vendor.argparse").Parser
18
19local type Args = require("luarocks.core.types.args").Args
20
21
22function purge.add_to_parser(parser: Parser)
17 -- luacheck: push ignore 431 23 -- luacheck: push ignore 431
18 local cmd = parser:command("purge", [[ 24 local cmd = parser:command("purge", [[
19This command removes rocks en masse from a given tree. 25This command removes rocks en masse from a given tree.
@@ -34,13 +40,13 @@ The --tree option is mandatory: luarocks purge does not assume a default tree.]]
34 "without reporting dependency issues.") 40 "without reporting dependency issues.")
35end 41end
36 42
37function purge.command(args) 43function purge.command(args: Args): boolean, string
38 local tree = args.tree 44 local tree = args.tree
39 45
40 local results = {} 46 local results = {}
41 search.local_manifest_search(results, path.rocks_dir(tree), queries.all()) 47 search.local_manifest_search(results, path.rocks_dir(tree), queries.all())
42 48
43 local sort = function(a,b) return vers.compare_versions(b,a) end 49 local sort = function(a: string,b: string): boolean return vers.compare_versions(b,a) end
44 if args.old_versions then 50 if args.old_versions then
45 sort = vers.compare_versions 51 sort = vers.compare_versions
46 end 52 end
@@ -58,16 +64,16 @@ function purge.command(args)
58 break 64 break
59 else 65 else
60 util.printout("Removing "..package.." "..version.."...") 66 util.printout("Removing "..package.." "..version.."...")
61 local ok, err = repos.delete_version(package, version, "none", true) 67 local ok, err = repo_writer.delete_version(package, version, "none", true)
62 if not ok then 68 if not ok then
63 util.printerr(err) 69 util.printerr(err)
64 end 70 end
65 end 71 end
66 end 72 end
67 end 73 end
68 return writer.make_manifest(cfg.rocks_dir, "one") 74 return repo_writer.refresh_manifest(cfg.rocks_dir)
69end 75end
70 76
71purge.needs_lock = function() return true end 77purge.needs_lock = function(): boolean return true end
72 78
73return purge 79return purge