diff options
-rw-r--r-- | src/luarocks/build.lua | 2 | ||||
-rw-r--r-- | src/luarocks/install.lua | 2 | ||||
-rw-r--r-- | src/luarocks/make.lua | 2 | ||||
-rw-r--r-- | src/luarocks/purge.lua | 2 | ||||
-rw-r--r-- | src/luarocks/remove.lua | 14 | ||||
-rw-r--r-- | src/luarocks/util.lua | 1 | ||||
-rwxr-xr-x | test/testing.sh | 1 |
7 files changed, 13 insertions, 11 deletions
diff --git a/src/luarocks/build.lua b/src/luarocks/build.lua index bdc3b57a..a1aeb501 100644 --- a/src/luarocks/build.lua +++ b/src/luarocks/build.lua | |||
@@ -418,7 +418,7 @@ function build.run(...) | |||
418 | return name, version | 418 | return name, version |
419 | end | 419 | end |
420 | if (not flags["keep"]) and not cfg.keep_other_versions then | 420 | if (not flags["keep"]) and not cfg.keep_other_versions then |
421 | local ok, err = remove.remove_other_versions(name, version, flags["force"]) | 421 | local ok, err = remove.remove_other_versions(name, version, flags["force"], flags["force-fast"]) |
422 | if not ok then util.printerr(err) end | 422 | if not ok then util.printerr(err) end |
423 | end | 423 | end |
424 | return name, version | 424 | return name, version |
diff --git a/src/luarocks/install.lua b/src/luarocks/install.lua index 24f1accd..e7e6bb20 100644 --- a/src/luarocks/install.lua +++ b/src/luarocks/install.lua | |||
@@ -180,7 +180,7 @@ function install.run(...) | |||
180 | if not ok then return nil, err end | 180 | if not ok then return nil, err end |
181 | local name, version = ok, err | 181 | local name, version = ok, err |
182 | if (not flags["only-deps"]) and (not flags["keep"]) and not cfg.keep_other_versions then | 182 | if (not flags["only-deps"]) and (not flags["keep"]) and not cfg.keep_other_versions then |
183 | local ok, err = remove.remove_other_versions(name, version, flags["force"]) | 183 | local ok, err = remove.remove_other_versions(name, version, flags["force"], flags["force-fast"]) |
184 | if not ok then util.printerr(err) end | 184 | if not ok then util.printerr(err) end |
185 | end | 185 | end |
186 | return name, version | 186 | return name, version |
diff --git a/src/luarocks/make.lua b/src/luarocks/make.lua index 94cf4414..78c43d91 100644 --- a/src/luarocks/make.lua +++ b/src/luarocks/make.lua | |||
@@ -132,7 +132,7 @@ function make.run(...) | |||
132 | if not ok then return nil, err end | 132 | if not ok then return nil, err end |
133 | local name, version = ok, err | 133 | local name, version = ok, err |
134 | if (not flags["keep"]) and not cfg.keep_other_versions then | 134 | if (not flags["keep"]) and not cfg.keep_other_versions then |
135 | local ok, err = remove.remove_other_versions(name, version, flags["force"]) | 135 | local ok, err = remove.remove_other_versions(name, version, flags["force"], flags["force-fast"]) |
136 | if not ok then util.printerr(err) end | 136 | if not ok then util.printerr(err) end |
137 | end | 137 | end |
138 | return name, version | 138 | return name, version |
diff --git a/src/luarocks/purge.lua b/src/luarocks/purge.lua index ba9b8705..bd5494f6 100644 --- a/src/luarocks/purge.lua +++ b/src/luarocks/purge.lua | |||
@@ -61,7 +61,7 @@ function purge.run(...) | |||
61 | for version, repositories in util.sortedpairs(versions, sort) do | 61 | for version, repositories in util.sortedpairs(versions, sort) do |
62 | if flags["old-versions"] then | 62 | if flags["old-versions"] then |
63 | util.printout("Keeping "..package.." "..version.."...") | 63 | util.printout("Keeping "..package.." "..version.."...") |
64 | local ok, err = remove.remove_other_versions(package, version, flags["force"]) | 64 | local ok, err = remove.remove_other_versions(package, version, flags["force"], flags["force-fast"]) |
65 | if not ok then | 65 | if not ok then |
66 | util.printerr(err) | 66 | util.printerr(err) |
67 | end | 67 | end |
diff --git a/src/luarocks/remove.lua b/src/luarocks/remove.lua index 04fa5be6..9e1ae217 100644 --- a/src/luarocks/remove.lua +++ b/src/luarocks/remove.lua | |||
@@ -23,7 +23,7 @@ If a version is not given, try to remove all versions at once. | |||
23 | Will only perform the removal if it does not break dependencies. | 23 | Will only perform the removal if it does not break dependencies. |
24 | To override this check and force the removal, use --force. | 24 | To override this check and force the removal, use --force. |
25 | To perform a forced removal without reporting dependency issues, | 25 | To perform a forced removal without reporting dependency issues, |
26 | use --force=fast. | 26 | use --force-fast. |
27 | 27 | ||
28 | ]]..util.deps_mode_help() | 28 | ]]..util.deps_mode_help() |
29 | 29 | ||
@@ -74,14 +74,14 @@ local function delete_versions(name, versions) | |||
74 | return true | 74 | return true |
75 | end | 75 | end |
76 | 76 | ||
77 | function remove.remove_search_results(results, name, deps_mode, force) | 77 | function remove.remove_search_results(results, name, deps_mode, force, fast) |
78 | local versions = results[name] | 78 | local versions = results[name] |
79 | 79 | ||
80 | local version = next(versions) | 80 | local version = next(versions) |
81 | local second = next(versions, version) | 81 | local second = next(versions, version) |
82 | 82 | ||
83 | local dependents = {} | 83 | local dependents = {} |
84 | if force ~= "fast" then | 84 | if not fast then |
85 | util.printout("Checking stability of dependencies in the absence of") | 85 | util.printout("Checking stability of dependencies in the absence of") |
86 | util.printout(name.." "..table.concat(util.keys(versions), ", ").."...") | 86 | util.printout(name.." "..table.concat(util.keys(versions), ", ").."...") |
87 | util.printout() | 87 | util.printout() |
@@ -89,7 +89,7 @@ function remove.remove_search_results(results, name, deps_mode, force) | |||
89 | end | 89 | end |
90 | 90 | ||
91 | if #dependents > 0 then | 91 | if #dependents > 0 then |
92 | if force then | 92 | if force or fast then |
93 | util.printerr("The following packages may be broken by this forced removal:") | 93 | util.printerr("The following packages may be broken by this forced removal:") |
94 | for _, dependent in ipairs(dependents) do | 94 | for _, dependent in ipairs(dependents) do |
95 | util.printerr(dependent.name.." "..dependent.version) | 95 | util.printerr(dependent.name.." "..dependent.version) |
@@ -121,11 +121,11 @@ function remove.remove_search_results(results, name, deps_mode, force) | |||
121 | return true | 121 | return true |
122 | end | 122 | end |
123 | 123 | ||
124 | function remove.remove_other_versions(name, version, force) | 124 | function remove.remove_other_versions(name, version, force, fast) |
125 | local results = {} | 125 | local results = {} |
126 | search.manifest_search(results, cfg.rocks_dir, { name = name, exact_name = true, constraints = {{ op = "~=", version = version}} }) | 126 | search.manifest_search(results, cfg.rocks_dir, { name = name, exact_name = true, constraints = {{ op = "~=", version = version}} }) |
127 | if results[name] then | 127 | if results[name] then |
128 | return remove.remove_search_results(results, name, cfg.deps_mode, force) | 128 | return remove.remove_search_results(results, name, cfg.deps_mode, force, fast) |
129 | end | 129 | end |
130 | return true | 130 | return true |
131 | end | 131 | end |
@@ -162,7 +162,7 @@ function remove.run(...) | |||
162 | return nil, "Could not find rock '"..name..(version and " "..version or "").."' in "..path.rocks_tree_to_string(cfg.root_dir) | 162 | return nil, "Could not find rock '"..name..(version and " "..version or "").."' in "..path.rocks_tree_to_string(cfg.root_dir) |
163 | end | 163 | end |
164 | 164 | ||
165 | return remove.remove_search_results(results, name, deps_mode, flags["force"]) | 165 | return remove.remove_search_results(results, name, deps_mode, flags["force"], flags["force-fast"]) |
166 | end | 166 | end |
167 | 167 | ||
168 | return remove | 168 | return remove |
diff --git a/src/luarocks/util.lua b/src/luarocks/util.lua index c06c8354..80f1684a 100644 --- a/src/luarocks/util.lua +++ b/src/luarocks/util.lua | |||
@@ -82,6 +82,7 @@ local supported_flags = { | |||
82 | ["deps-mode"] = "<mode>", | 82 | ["deps-mode"] = "<mode>", |
83 | ["detailed"] = "\"<text>\"", | 83 | ["detailed"] = "\"<text>\"", |
84 | ["force"] = true, | 84 | ["force"] = true, |
85 | ["force-fast"] = true, | ||
85 | ["from"] = "<server>", | 86 | ["from"] = "<server>", |
86 | ["help"] = true, | 87 | ["help"] = true, |
87 | ["home"] = true, | 88 | ["home"] = true, |
diff --git a/test/testing.sh b/test/testing.sh index 305168c8..5269e42a 100755 --- a/test/testing.sh +++ b/test/testing.sh | |||
@@ -458,6 +458,7 @@ test_purge_oldversions() { $luarocks purge --old-versions --tree="$testing_sys_t | |||
458 | 458 | ||
459 | test_remove() { $luarocks build abelhas ${version_abelhas} && $luarocks remove abelhas ${version_abelhas}; } | 459 | test_remove() { $luarocks build abelhas ${version_abelhas} && $luarocks remove abelhas ${version_abelhas}; } |
460 | test_remove_force() { need_luasocket; $luarocks build lualogging && $luarocks remove --force luasocket; } | 460 | test_remove_force() { need_luasocket; $luarocks build lualogging && $luarocks remove --force luasocket; } |
461 | test_remove_force_fast() { need_luasocket; $luarocks build lualogging && $luarocks remove --force-fast luasocket; } | ||
461 | fail_remove_deps() { need_luasocket; $luarocks build lualogging && $luarocks remove luasocket; } | 462 | fail_remove_deps() { need_luasocket; $luarocks build lualogging && $luarocks remove luasocket; } |
462 | fail_remove_missing() { $luarocks remove missing_rock; } | 463 | fail_remove_missing() { $luarocks remove missing_rock; } |
463 | fail_remove_invalid_name() { $luarocks remove invalid.rock; } | 464 | fail_remove_invalid_name() { $luarocks remove invalid.rock; } |