Mercurial > repo
view share/lua/5.2/luarocks/purge.lua @ 12518:2d8fe55c6e65 draft default tip
<int-e> learn The password of the month is release incident pilot.
author | HackEso <hackeso@esolangs.org> |
---|---|
date | Sun, 03 Nov 2024 00:31:02 +0000 |
parents | d137f631bad5 |
children |
line wrap: on
line source
--- Module implementing the LuaRocks "purge" command. -- Remove all rocks from a given tree. module("luarocks.purge", package.seeall) local util = require("luarocks.util") local fs = require("luarocks.fs") local path = require("luarocks.path") local search = require("luarocks.search") local deps = require("luarocks.deps") local repos = require("luarocks.repos") local manif = require("luarocks.manif") local cfg = require("luarocks.cfg") help_summary = "Remove all installed rocks from a tree." help_arguments = "--tree=<tree>" help = [[ This command removes all rocks from a given tree. The --tree argument is mandatory: luarocks purge does not assume a default tree. ]] function run(...) local flags = util.parse_flags(...) local tree = flags["tree"] if type(tree) ~= "string" then return nil, "The --tree argument is mandatory, see help." end local results = {} local query = search.make_query("") query.exact_name = false search.manifest_search(results, path.rocks_dir(tree), query) for package, versions in util.sortedpairs(results) do for version, repositories in util.sortedpairs(versions, function(a,b) return deps.compare_versions(b,a) end) do util.printout("Removing "..package.." "..version.."...") local ok, err = repos.delete_version(package, version, true) if not ok then util.printerr(err) end end end return manif.make_manifest(cfg.rocks_dir, "one") end