Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/src/luarocks/list.lua b/src/luarocks/list.lua
- index 8affc52..2efcfdd 100644
- --- a/src/luarocks/list.lua
- +++ b/src/luarocks/list.lua
- @@ -4,6 +4,9 @@
- --module("luarocks.list", package.seeall)
- local list = {}
- package.loaded["luarocks.list"] = list
- +
- +local flags, filter, version, query, trees
- +
- local search = require("luarocks.search")
- local deps = require("luarocks.deps")
- @@ -22,7 +25,9 @@ list.help = [[
- --porcelain Produce machine-friendly output.
- ]]
- -local function check_outdated(trees, query)
- +---Searches for outdated packages in the given tree
- +-- @return table,table,table,string: results, trees, flags, version
- +local function get_outdated()
- local results_installed = {}
- for _, tree in ipairs(trees) do
- search.manifest_search(results_installed, path.rocks_dir(tree), query)
- @@ -48,12 +53,14 @@ local function check_outdated(trees, query)
- end
- end
- end
- - return outdated
- + return outdated, trees, flags, version
- end
- -local function list_outdated(trees, query, porcelain)
- +--- Outputs the outdated packages
- +-- @return true
- +local function print_outdated(porcelain)
- util.title("Outdated rocks:", porcelain)
- - local outdated = check_outdated(trees, query)
- + local outdated = get_outdated()
- for _, item in ipairs(outdated) do
- if porcelain then
- util.printout(item.name, item.installed, item.available, item.repo)
- @@ -69,20 +76,9 @@ end
- --- Driver function for "list" command.
- -- @param filter string or nil: A substring of a rock name to filter by.
- -- @param version string or nil: a version may also be passed.
- --- @return boolean: True if succeeded, nil on errors.
- -function list.run(...)
- - local flags, filter, version = util.parse_flags(...)
- - local query = search.make_query(filter and filter:lower() or "", version)
- - query.exact_name = false
- - local trees = cfg.rocks_trees
- - if flags["tree"] then
- - trees = { flags["tree"] }
- - end
- -
- - if flags["outdated"] then
- - return list_outdated(trees, query, flags["porcelain"])
- - end
- -
- +-- @return table,table,table,string: results, trees, flags, version
- +local function get_results()
- +
- local results = {}
- for _, tree in ipairs(trees) do
- local ok, err, errcode = search.manifest_search(results, path.rocks_dir(tree), query)
- @@ -90,9 +86,46 @@ function list.run(...)
- util.warning(err)
- end
- end
- - util.title("Installed rocks:", flags["porcelain"])
- - search.print_results(results, flags["porcelain"])
- + return results, trees, flags, version
- +end
- +
- +--- Parse the arguments, create the query and get the trees.
- +local function parse(...)
- + flags, filter, version = util.parse_flags(...)
- + query = search.make_query(filter and filter:lower() or "", version)
- + query.exact_name = false
- + trees = cfg.rocks_trees
- + if flags["tree"] then
- + trees = { flags["tree"] }
- + end
- +end
- +
- +--- Run function for "list" command. This is called by command_line
- +-- when the user specifies `list`.
- +-- @param filter string or nil: A substring of a rock name to filter by.
- +-- @param version string or nil: a version may also be passed.
- +-- @return true
- +function list.run(...)
- + parse(...)
- + if flags["outdated"] then
- + print_outdated(flags["porcelain"])
- + else
- + util.title("Installed rocks:", flags["porcelain"])
- + search.print_results(get_results(), flags["porcelain"])
- + end
- +
- return true
- end
- +-- Return the table results from the list command
- +-- @return table,table,table,string: results, trees, flags, version
- +function list.list(...)
- + parse(...)
- + if flags["outdated"] then
- + return get_outdated()
- + else
- + return get_results()
- + end
- +end
- +
- return list
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement