diff options
| author | Peter Melnichenko <mpeterval@gmail.com> | 2016-05-10 19:02:55 +0300 |
|---|---|---|
| committer | Peter Melnichenko <mpeterval@gmail.com> | 2016-05-10 19:04:46 +0300 |
| commit | 66fa084686eb344fc960ea6e4008ed1419afe5ce (patch) | |
| tree | 6a13bb45dc20d84e80c90f336a9e57a13235db54 /src | |
| parent | b60a4134683e6fb9f325fa6d190ef418c87812c4 (diff) | |
| download | luarocks-66fa084686eb344fc960ea6e4008ed1419afe5ce.tar.gz luarocks-66fa084686eb344fc960ea6e4008ed1419afe5ce.tar.bz2 luarocks-66fa084686eb344fc960ea6e4008ed1419afe5ce.zip | |
Refactor check_outdated() to avoid loops with unconditional breaks
Diffstat (limited to 'src')
| -rw-r--r-- | src/luarocks/list.lua | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/src/luarocks/list.lua b/src/luarocks/list.lua index b517d182..8affc52f 100644 --- a/src/luarocks/list.lua +++ b/src/luarocks/list.lua | |||
| @@ -29,27 +29,19 @@ local function check_outdated(trees, query) | |||
| 29 | end | 29 | end |
| 30 | local outdated = {} | 30 | local outdated = {} |
| 31 | for name, versions in util.sortedpairs(results_installed) do | 31 | for name, versions in util.sortedpairs(results_installed) do |
| 32 | local latest_installed | 32 | versions = util.keys(versions) |
| 33 | local latest_available, latest_available_repo | 33 | table.sort(versions, deps.compare_versions) |
| 34 | 34 | local latest_installed = versions[1] | |
| 35 | for version, _ in util.sortedpairs(versions, deps.compare_versions) do | ||
| 36 | latest_installed = version | ||
| 37 | break | ||
| 38 | end | ||
| 39 | 35 | ||
| 40 | local query_available = search.make_query(name:lower()) | 36 | local query_available = search.make_query(name:lower()) |
| 41 | query.exact_name = true | 37 | query.exact_name = true |
| 42 | local results_available, err = search.search_repos(query_available) | 38 | local results_available, err = search.search_repos(query_available) |
| 43 | 39 | ||
| 44 | if results_available[name] then | 40 | if results_available[name] then |
| 45 | for version, repos in util.sortedpairs(results_available[name], deps.compare_versions) do | 41 | local available_versions = util.keys(results_available[name]) |
| 46 | latest_available = version | 42 | table.sort(available_versions, deps.compare_versions) |
| 47 | for _, repo in ipairs(repos) do | 43 | local latest_available = available_versions[1] |
| 48 | latest_available_repo = repo.repo | 44 | local latest_available_repo = results_available[name][latest_available][1].repo |
| 49 | break | ||
| 50 | end | ||
| 51 | break | ||
| 52 | end | ||
| 53 | 45 | ||
| 54 | if deps.compare_versions(latest_available, latest_installed) then | 46 | if deps.compare_versions(latest_available, latest_installed) then |
| 55 | table.insert(outdated, { name = name, installed = latest_installed, available = latest_available, repo = latest_available_repo }) | 47 | table.insert(outdated, { name = name, installed = latest_installed, available = latest_available, repo = latest_available_repo }) |
