From a6c0f193b502783732b083dacc07891237629d58 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Mon, 12 Aug 2024 14:35:19 -0300 Subject: refactor: break circular dependency between repos and manif.writer --- src/luarocks/build.lua | 35 +++++++++-------------------- src/luarocks/cmd/build.lua | 3 +-- src/luarocks/cmd/install.lua | 23 +++++-------------- src/luarocks/cmd/make.lua | 3 +-- src/luarocks/cmd/purge.lua | 7 +++--- src/luarocks/cmd/remove.lua | 3 +-- src/luarocks/deps.lua | 29 ++++++++++++++++++++++++ src/luarocks/deps.tl | 43 +++++++++++++++++++++++++++++------ src/luarocks/manif/writer.lua | 29 ------------------------ src/luarocks/manif/writer.tl | 29 ------------------------ src/luarocks/remove.lua | 3 ++- src/luarocks/repo_writer.lua | 52 +++++++++++++++++++++++++++++++++++++++++++ src/luarocks/repos.lua | 36 +++++++++--------------------- src/luarocks/repos.tl | 20 +++++++---------- 14 files changed, 159 insertions(+), 156 deletions(-) create mode 100644 src/luarocks/repo_writer.lua diff --git a/src/luarocks/build.lua b/src/luarocks/build.lua index ddaef760..b027c81a 100644 --- a/src/luarocks/build.lua +++ b/src/luarocks/build.lua @@ -11,7 +11,7 @@ local deps = require("luarocks.deps") local cfg = require("luarocks.core.cfg") local vers = require("luarocks.core.vers") local repos = require("luarocks.repos") -local writer = require("luarocks.manif.writer") +local repo_writer = require("luarocks.repo_writer") local deplocks = require("luarocks.deplocks") do @@ -349,25 +349,6 @@ do end end -local function write_rock_dir_files(rockspec, opts) - local name, version = rockspec.name, rockspec.version - - fs.copy(rockspec.local_abs_filename, path.rockspec_file(name, version), "read") - - local deplock_file = deplocks.get_abs_filename(rockspec.name) - if deplock_file then - fs.copy(deplock_file, dir.path(path.install_dir(name, version), "luarocks.lock"), "read") - end - - local ok, err = writer.make_rock_manifest(name, version) - if not ok then return nil, err end - - ok, err = writer.make_namespace_file(name, version, opts.namespace) - if not ok then return nil, err end - - return true -end - --- Build and install a rock given a rockspec. -- @param rockspec rockspec: the rockspec to build -- @param opts table: build options table @@ -419,7 +400,7 @@ function build.build_rockspec(rockspec, opts, cwd) local rollback if not opts.no_install then if repos.is_installed(name, version) then - repos.delete_version(name, version, opts.deps_mode) + repo_writer.delete_version(name, version, opts.deps_mode) end dirs, err = prepare_install_dirs(name, version) @@ -464,15 +445,19 @@ function build.build_rockspec(rockspec, opts, cwd) deplocks.write_file() end - ok, err = write_rock_dir_files(rockspec, opts) - if not ok then return nil, err end + fs.copy(rockspec.local_abs_filename, path.rockspec_file(name, version), "read") + + local deplock_file = deplocks.get_abs_filename(name) + if deplock_file then + fs.copy(deplock_file, dir.path(path.install_dir(name, version), "luarocks.lock"), "read") + end - ok, err = repos.deploy_files(name, version, repos.should_wrap_bin_scripts(rockspec), opts.deps_mode) + ok, err = repo_writer.deploy_files(name, version, repos.should_wrap_bin_scripts(rockspec), opts.deps_mode, opts.namespace) if not ok then return nil, err end util.remove_scheduled_function(rollback) rollback = util.schedule_function(function() - repos.delete_version(name, version, opts.deps_mode) + repo_writer.delete_version(name, version, opts.deps_mode) end) ok, err = repos.run_hook(rockspec, "post_install") diff --git a/src/luarocks/cmd/build.lua b/src/luarocks/cmd/build.lua index b46b9532..6d719d5a 100644 --- a/src/luarocks/cmd/build.lua +++ b/src/luarocks/cmd/build.lua @@ -13,7 +13,6 @@ local deps = require("luarocks.deps") local remove = require("luarocks.remove") local cfg = require("luarocks.core.cfg") local build = require("luarocks.build") -local writer = require("luarocks.manif.writer") local search = require("luarocks.search") local make = require("luarocks.cmd.make") local repos = require("luarocks.repos") @@ -185,7 +184,7 @@ function cmd_build.command(args) end if opts.deps_mode ~= "none" then - writer.check_dependencies(nil, deps.get_deps_mode(args)) + deps.check_dependencies(nil, deps.get_deps_mode(args)) end return name, version end diff --git a/src/luarocks/cmd/install.lua b/src/luarocks/cmd/install.lua index 7102d857..e00b964d 100644 --- a/src/luarocks/cmd/install.lua +++ b/src/luarocks/cmd/install.lua @@ -9,7 +9,7 @@ local fetch = require("luarocks.fetch") local util = require("luarocks.util") local fs = require("luarocks.fs") local deps = require("luarocks.deps") -local writer = require("luarocks.manif.writer") +local repo_writer = require("luarocks.repo_writer") local remove = require("luarocks.remove") local search = require("luarocks.search") local queries = require("luarocks.queries") @@ -80,7 +80,7 @@ function install.install_binary_rock(rock_file, opts) util.printout("Use --force to reinstall.") return name, version end - repos.delete_version(name, version, opts.deps_mode) + repo_writer.delete_version(name, version, opts.deps_mode) end local install_dir = path.install_dir(name, version) @@ -103,17 +103,6 @@ function install.install_binary_rock(rock_file, opts) if err then return nil, err, errcode end end - -- For compatibility with .rock files built with LuaRocks 1 - if not fs.exists(path.rock_manifest_file(name, version)) then - ok, err = writer.make_rock_manifest(name, version) - if err then return nil, err end - end - - if namespace then - ok, err = writer.make_namespace_file(name, version, namespace) - if err then return nil, err end - end - if deps_mode ~= "none" then local deplock_dir = fs.exists(dir.path(".", "luarocks.lock")) and "." @@ -122,12 +111,12 @@ function install.install_binary_rock(rock_file, opts) if err then return nil, err, errcode end end - ok, err = repos.deploy_files(name, version, repos.should_wrap_bin_scripts(rockspec), deps_mode) + ok, err = repo_writer.deploy_files(name, version, repos.should_wrap_bin_scripts(rockspec), deps_mode, namespace) if err then return nil, err end util.remove_scheduled_function(rollback) rollback = util.schedule_function(function() - repos.delete_version(name, version, deps_mode) + repo_writer.delete_version(name, version, deps_mode) end) ok, err = repos.run_hook(rockspec, "post_install") @@ -183,7 +172,7 @@ local function install_rock_file_deps(filename, opts) local name, version = install.install_binary_rock_deps(filename, opts) if not name then return nil, version end - writer.check_dependencies(nil, opts.deps_mode) + deps.check_dependencies(nil, opts.deps_mode) return name, version end @@ -206,7 +195,7 @@ local function install_rock_file(filename, opts) end end - writer.check_dependencies(nil, opts.deps_mode) + deps.check_dependencies(nil, opts.deps_mode) return name, version end diff --git a/src/luarocks/cmd/make.lua b/src/luarocks/cmd/make.lua index e7db6aad..811078b8 100644 --- a/src/luarocks/cmd/make.lua +++ b/src/luarocks/cmd/make.lua @@ -12,7 +12,6 @@ local fetch = require("luarocks.fetch") local pack = require("luarocks.pack") local remove = require("luarocks.remove") local deps = require("luarocks.deps") -local writer = require("luarocks.manif.writer") local dir = require("luarocks.dir") local fs = require("luarocks.fs") @@ -151,7 +150,7 @@ function make.command(args) end end - writer.check_dependencies(nil, deps.get_deps_mode(args)) + deps.check_dependencies(nil, deps.get_deps_mode(args)) return name, version end end diff --git a/src/luarocks/cmd/purge.lua b/src/luarocks/cmd/purge.lua index 30811ddf..fda8ab88 100644 --- a/src/luarocks/cmd/purge.lua +++ b/src/luarocks/cmd/purge.lua @@ -7,8 +7,7 @@ local util = require("luarocks.util") local path = require("luarocks.path") local search = require("luarocks.search") local vers = require("luarocks.core.vers") -local repos = require("luarocks.repos") -local writer = require("luarocks.manif.writer") +local repo_writer = require("luarocks.repo_writer") local cfg = require("luarocks.core.cfg") local remove = require("luarocks.remove") local queries = require("luarocks.queries") @@ -58,14 +57,14 @@ function purge.command(args) break else util.printout("Removing "..package.." "..version.."...") - local ok, err = repos.delete_version(package, version, "none", true) + local ok, err = repo_writer.delete_version(package, version, "none", true) if not ok then util.printerr(err) end end end end - return writer.make_manifest(cfg.rocks_dir, "one") + return repo_writer.refresh_manifest(cfg.rocks_dir) end purge.needs_lock = function() return true end diff --git a/src/luarocks/cmd/remove.lua b/src/luarocks/cmd/remove.lua index 8b11bcd3..630303ca 100644 --- a/src/luarocks/cmd/remove.lua +++ b/src/luarocks/cmd/remove.lua @@ -9,7 +9,6 @@ local cfg = require("luarocks.core.cfg") local search = require("luarocks.search") local path = require("luarocks.path") local deps = require("luarocks.deps") -local writer = require("luarocks.manif.writer") local queries = require("luarocks.queries") function cmd_remove.add_to_parser(parser) @@ -63,7 +62,7 @@ function cmd_remove.command(args) return nil, err end - writer.check_dependencies(nil, deps.get_deps_mode(args)) + deps.check_dependencies(nil, deps.get_deps_mode(args)) return true end diff --git a/src/luarocks/deps.lua b/src/luarocks/deps.lua index 2edee8a6..05cbbc2d 100644 --- a/src/luarocks/deps.lua +++ b/src/luarocks/deps.lua @@ -849,4 +849,33 @@ function deps.get_deps_mode(args) return args.deps_mode or cfg.deps_mode end + + + + + + +function deps.check_dependencies(repo, deps_mode) + local rocks_dir = path.rocks_dir(repo or cfg.root_dir) + assert(type(deps_mode) == "string") + if deps_mode == "none" then deps_mode = cfg.deps_mode end + + local manifest = manif.load_manifest(rocks_dir) + if not manifest then + return + end + + for name, versions in util.sortedpairs(manifest.repository) do + for version, version_entries in util.sortedpairs(versions, vers.compare_versions) do + for _, entry in ipairs(version_entries) do + if entry.arch == "installed" then + if manifest.dependencies[name] and manifest.dependencies[name][version] then + deps.report_missing_dependencies(name, version, manifest.dependencies[name][version], deps_mode, util.get_rocks_provided()) + end + end + end + end + end +end + return deps diff --git a/src/luarocks/deps.tl b/src/luarocks/deps.tl index 7e6e39c8..d3172f3b 100644 --- a/src/luarocks/deps.tl +++ b/src/luarocks/deps.tl @@ -97,7 +97,7 @@ end -- 2. nil -- 3. either 'dep' or an alternative query to be used -- 4. false -local function match_dep(depq: Query, +local function match_dep(depq: Query, get_versions: function(Query): {string}, {string: string | Tree}, string, boolean): string, string | Tree, Query, boolean local versions, locations, lockversion, provided = get_versions(depq) @@ -126,7 +126,7 @@ local function match_dep(depq: Query, return latest_vstring, locations[latest_vstring], depq, provided end -local function match_all_deps(dependencies: {Query}, +local function match_all_deps(dependencies: {Query}, get_versions: function(Query): {string}, {string: string | Tree}, string, boolean): {Query: Result}, {string: Query}, {string: Query} local matched, missing, no_upgrade = {}, {}, {} @@ -300,11 +300,11 @@ function deps.fulfill_dependencies(rockspec: Rockspec, depskey: string, deps_mod local get_versions = prepare_get_versions("none", rocks_provided, depskey) local dnsnamestr, dversionstr: string, string for dnsname, dversion in deplocks.each(depskey) do - if dnsname is string then - dnsnamestr = dnsname + if dnsname is string then + dnsnamestr = dnsname end - if dversion is string then - dversionstr = dversion + if dversion is string then + dversionstr = dversion end local dname, dnamespace = util.split_namespace(dnsnamestr) local depq = queries.new(dname, dnamespace, dversionstr) @@ -603,7 +603,7 @@ function deps.autodetect_external_dependencies(build: Build): {string : {string local librariesstr: string | {string} = data.libraries if librariesstr is string then libraries = { librariesstr } - else + else libraries = librariesstr end local incdirs = {} @@ -849,4 +849,33 @@ function deps.get_deps_mode(args: {string: string}): string return args.deps_mode or cfg.deps_mode end +--- Report missing dependencies for all rocks installed in a repository. +-- @param repo string or nil: Pathname of a local repository. If not given, +-- the default local repository is used. +-- @param deps_mode string: Dependency mode: "one" for the current default tree, +-- "all" for all trees, "order" for all trees with priority >= the current default, +-- "none" for using the default dependency mode from the configuration. +function deps.check_dependencies(repo: string, deps_mode: string) + local rocks_dir = path.rocks_dir(repo or cfg.root_dir) + assert(type(deps_mode) == "string") + if deps_mode == "none" then deps_mode = cfg.deps_mode end + + local manifest = manif.load_manifest(rocks_dir) + if not manifest then + return + end + + for name, versions in util.sortedpairs(manifest.repository) do + for version, version_entries in util.sortedpairs(versions, vers.compare_versions) do + for _, entry in ipairs(version_entries) do + if entry.arch == "installed" then + if manifest.dependencies[name] and manifest.dependencies[name][version] then + deps.report_missing_dependencies(name, version, manifest.dependencies[name][version], deps_mode, util.get_rocks_provided()) + end + end + end + end + end +end + return deps diff --git a/src/luarocks/manif/writer.lua b/src/luarocks/manif/writer.lua index 36f5f57f..72d35754 100644 --- a/src/luarocks/manif/writer.lua +++ b/src/luarocks/manif/writer.lua @@ -466,33 +466,4 @@ function writer.remove_from_manifest(name, version, repo, deps_mode) return save_table(rocks_dir, "manifest", manifest) end ---- Report missing dependencies for all rocks installed in a repository. --- @param repo string or nil: Pathname of a local repository. If not given, --- the default local repository is used. --- @param deps_mode string: Dependency mode: "one" for the current default tree, --- "all" for all trees, "order" for all trees with priority >= the current default, --- "none" for using the default dependency mode from the configuration. -function writer.check_dependencies(repo, deps_mode) - local rocks_dir = path.rocks_dir(repo or cfg.root_dir) - assert(type(deps_mode) == "string") - if deps_mode == "none" then deps_mode = cfg.deps_mode end - - local manifest = manif.load_manifest(rocks_dir) - if not manifest then - return - end - - for name, versions in util.sortedpairs(manifest.repository) do - for version, version_entries in util.sortedpairs(versions, vers.compare_versions) do - for _, entry in ipairs(version_entries) do - if entry.arch == "installed" then - if manifest.dependencies[name] and manifest.dependencies[name][version] then - deps.report_missing_dependencies(name, version, manifest.dependencies[name][version], deps_mode, util.get_rocks_provided()) - end - end - end - end - end -end - return writer diff --git a/src/luarocks/manif/writer.tl b/src/luarocks/manif/writer.tl index 625fba79..ee4144e0 100644 --- a/src/luarocks/manif/writer.tl +++ b/src/luarocks/manif/writer.tl @@ -467,33 +467,4 @@ function writer.remove_from_manifest(name, version, repo, deps_mode) return save_table(rocks_dir, "manifest", manifest) end ---- Report missing dependencies for all rocks installed in a repository. --- @param repo string or nil: Pathname of a local repository. If not given, --- the default local repository is used. --- @param deps_mode string: Dependency mode: "one" for the current default tree, --- "all" for all trees, "order" for all trees with priority >= the current default, --- "none" for using the default dependency mode from the configuration. -function writer.check_dependencies(repo, deps_mode) - local rocks_dir = path.rocks_dir(repo or cfg.root_dir) - assert(type(deps_mode) == "string") - if deps_mode == "none" then deps_mode = cfg.deps_mode end - - local manifest = manif.load_manifest(rocks_dir) - if not manifest then - return - end - - for name, versions in util.sortedpairs(manifest.repository) do - for version, version_entries in util.sortedpairs(versions, vers.compare_versions) do - for _, entry in ipairs(version_entries) do - if entry.arch == "installed" then - if manifest.dependencies[name] and manifest.dependencies[name][version] then - deps.report_missing_dependencies(name, version, manifest.dependencies[name][version], deps_mode, util.get_rocks_provided()) - end - end - end - end - end -end - return writer diff --git a/src/luarocks/remove.lua b/src/luarocks/remove.lua index be8517f6..e00097fa 100644 --- a/src/luarocks/remove.lua +++ b/src/luarocks/remove.lua @@ -4,6 +4,7 @@ local search = require("luarocks.search") local deps = require("luarocks.deps") local fetch = require("luarocks.fetch") local repos = require("luarocks.repos") +local repo_writer = require("luarocks.repo_writer") local path = require("luarocks.path") local util = require("luarocks.util") local cfg = require("luarocks.core.cfg") @@ -55,7 +56,7 @@ local function delete_versions(name, versions, deps_mode) for version, _ in pairs(versions) do util.printout("Removing "..name.." "..version.."...") - local ok, err = repos.delete_version(name, version, deps_mode) + local ok, err = repo_writer.delete_version(name, version, deps_mode) if not ok then return nil, err end end diff --git a/src/luarocks/repo_writer.lua b/src/luarocks/repo_writer.lua new file mode 100644 index 00000000..698af976 --- /dev/null +++ b/src/luarocks/repo_writer.lua @@ -0,0 +1,52 @@ +local repo_writer = {} + +local fs = require("luarocks.fs") +local path = require("luarocks.path") +local repos = require("luarocks.repos") +local writer = require("luarocks.manif.writer") + +function repo_writer.deploy_files(name, version, wrap_bin_scripts, deps_mode, namespace) + local ok, err + + if not fs.exists(path.rock_manifest_file(name, version)) then + ok, err = writer.make_rock_manifest(name, version) + if err then + return nil, err + end + end + + if namespace then + ok, err = writer.make_namespace_file(name, version, namespace) + if not ok then + return nil, err + end + end + + ok, err = repos.deploy_local_files(name, version, wrap_bin_scripts, deps_mode) + if not ok then + return nil, err + end + + ok, err = writer.add_to_manifest(name, version, nil, deps_mode) + return ok, err +end + +function repo_writer.delete_version(name, version, deps_mode, quick) + local ok, err, op = repos.delete_local_version(name, version, deps_mode, quick) + + if op == "remove" then + local rok, rerr = writer.remove_from_manifest(name, version, nil, deps_mode) + if ok and not rok then + ok, err = rok, rerr + end + end + + return ok, err +end + +function repo_writer.refresh_manifest(rocks_dir) + return writer.make_manifest(rocks_dir, "one") +end + +return repo_writer + diff --git a/src/luarocks/repos.lua b/src/luarocks/repos.lua index 764fe3ad..2e71b3f7 100644 --- a/src/luarocks/repos.lua +++ b/src/luarocks/repos.lua @@ -12,18 +12,6 @@ local vers = require("luarocks.core.vers") local unpack = unpack or table.unpack -- luacheck: ignore 211 ---- Get type and name of an item (a module or a command) provided by a file. --- @param deploy_type string: rock manifest subtree the file comes from ("bin", "lua", or "lib"). --- @param file_path string: path to the file relatively to deploy_type subdirectory. --- @return (string, string): item type ("module" or "command") and name. -local function get_provided_item(deploy_type, file_path) - assert(type(deploy_type) == "string") - assert(type(file_path) == "string") - local item_type = deploy_type == "bin" and "command" or "module" - local item_name = item_type == "command" and file_path or path.path_to_module(file_path) - return item_type, item_name -end - -- Tree of files installed by a package are stored -- in its rock manifest. Some of these files have to -- be deployed to locations where Lua can load them as @@ -94,7 +82,7 @@ end local function store_package_data(result, rock_manifest, deploy_type) if rock_manifest[deploy_type] then repos.recurse_rock_manifest_entry(rock_manifest[deploy_type], function(file_path) - local _, item_name = get_provided_item(deploy_type, file_path) + local _, item_name = manif.get_provided_item(deploy_type, file_path) result[item_name] = file_path return true end) @@ -246,7 +234,7 @@ local function get_deploy_paths(name, version, deploy_type, file_path, repo) end local function check_spot_if_available(name, version, deploy_type, file_path) - local item_type, item_name = get_provided_item(deploy_type, file_path) + local item_type, item_name = manif.get_provided_item(deploy_type, file_path) local cur_name, cur_version = manif.get_current_provider(item_type, item_name) -- older versions of LuaRocks (< 3) registered "foo.init" files as "foo" @@ -437,7 +425,7 @@ end -- @param deps_mode: string: Which trees to check dependencies for: -- "one" for the current default tree, "all" for all trees, -- "order" for all trees with priority >= the current default, "none" for no trees. -function repos.deploy_files(name, version, wrap_bin_scripts, deps_mode) +function repos.deploy_local_files(name, version, wrap_bin_scripts, deps_mode) assert(type(name) == "string" and not name:match("/")) assert(type(version) == "string") assert(type(wrap_bin_scripts) == "boolean") @@ -546,8 +534,7 @@ function repos.deploy_files(name, version, wrap_bin_scripts, deps_mode) return nil, err end - local writer = require("luarocks.manif.writer") - return writer.add_to_manifest(name, version, nil, deps_mode) + return true end local function add_to_double_checks(double_checks, name, version) @@ -582,7 +569,7 @@ end -- of another version that provides the same module that -- was deleted. This is used during 'purge', as every module -- will be eventually deleted. -function repos.delete_version(name, version, deps_mode, quick) +function repos.delete_local_version(name, version, deps_mode, quick) assert(type(name) == "string" and not name:match("/")) assert(type(version) == "string") assert(type(deps_mode) == "string") @@ -590,11 +577,9 @@ function repos.delete_version(name, version, deps_mode, quick) local rock_manifest, load_err = manif.load_rock_manifest(name, version) if not rock_manifest then if not quick then - local writer = require("luarocks.manif.writer") - writer.remove_from_manifest(name, version, nil, deps_mode) - return nil, "rock_manifest file not found for "..name.." "..version.." - removed entry from the manifest" + return nil, "rock_manifest file not found for "..name.." "..version.." - removed entry from the manifest", "remove" end - return nil, load_err + return nil, load_err, "fail" end local repo = cfg.root_dir @@ -677,7 +662,7 @@ function repos.delete_version(name, version, deps_mode, quick) local ok, err = double_check_all(double_checks, repo) if not ok then - return nil, err + return nil, err, "fail" end end @@ -687,11 +672,10 @@ function repos.delete_version(name, version, deps_mode, quick) end if quick then - return true + return true, nil, "ok" end - local writer = require("luarocks.manif.writer") - return writer.remove_from_manifest(name, version, nil, deps_mode) + return true, nil, "remove" end return repos diff --git a/src/luarocks/repos.tl b/src/luarocks/repos.tl index 14f1658c..3af53575 100644 --- a/src/luarocks/repos.tl +++ b/src/luarocks/repos.tl @@ -435,7 +435,7 @@ end -- @param deps_mode: string: Which trees to check dependencies for: -- "one" for the current default tree, "all" for all trees, -- "order" for all trees with priority >= the current default, "none" for no trees. -function repos.deploy_files(name, version, wrap_bin_scripts, deps_mode) +function repos.deploy_local_files(name, version, wrap_bin_scripts, deps_mode) assert(type(name) == "string" and not name:match("/")) assert(type(version) == "string") assert(type(wrap_bin_scripts) == "boolean") @@ -544,8 +544,7 @@ function repos.deploy_files(name, version, wrap_bin_scripts, deps_mode) return nil, err end - local writer = require("luarocks.manif.writer") - return writer.add_to_manifest(name, version, nil, deps_mode) + return true end local function add_to_double_checks(double_checks, name, version) @@ -580,7 +579,7 @@ end -- of another version that provides the same module that -- was deleted. This is used during 'purge', as every module -- will be eventually deleted. -function repos.delete_version(name, version, deps_mode, quick) +function repos.delete_local_version(name, version, deps_mode, quick) assert(type(name) == "string" and not name:match("/")) assert(type(version) == "string") assert(type(deps_mode) == "string") @@ -588,11 +587,9 @@ function repos.delete_version(name, version, deps_mode, quick) local rock_manifest, load_err = manif.load_rock_manifest(name, version) if not rock_manifest then if not quick then - local writer = require("luarocks.manif.writer") - writer.remove_from_manifest(name, version, nil, deps_mode) - return nil, "rock_manifest file not found for "..name.." "..version.." - removed entry from the manifest" + return nil, "rock_manifest file not found for "..name.." "..version.." - removed entry from the manifest", "remove" end - return nil, load_err + return nil, load_err, "fail" end local repo = cfg.root_dir @@ -675,7 +672,7 @@ function repos.delete_version(name, version, deps_mode, quick) local ok, err = double_check_all(double_checks, repo) if not ok then - return nil, err + return nil, err, "fail" end end @@ -685,11 +682,10 @@ function repos.delete_version(name, version, deps_mode, quick) end if quick then - return true + return true, nil, "ok" end - local writer = require("luarocks.manif.writer") - return writer.remove_from_manifest(name, version, nil, deps_mode) + return true, nil, "remove" end return repos -- cgit v1.2.3-55-g6feb