diff options
| author | daurnimator <quae@daurnimator.com> | 2019-05-05 14:26:55 +1000 |
|---|---|---|
| committer | Hisham Muhammad <hisham@gobolinux.org> | 2019-05-06 11:43:32 -0300 |
| commit | 191c170fc4fdc9700864bf0d4aefbf0394e3052e (patch) | |
| tree | 5bdc3989244d9e2841cc38625327cb36c6f897e1 /src | |
| parent | 8cfe305ba55e517505fd5a2cee57a75235612cbf (diff) | |
| download | luarocks-191c170fc4fdc9700864bf0d4aefbf0394e3052e.tar.gz luarocks-191c170fc4fdc9700864bf0d4aefbf0394e3052e.tar.bz2 luarocks-191c170fc4fdc9700864bf0d4aefbf0394e3052e.zip | |
fix: handle errors in lua wrapper check
Diffstat (limited to 'src')
| -rw-r--r-- | src/luarocks/util.lua | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/luarocks/util.lua b/src/luarocks/util.lua index 2592fcdc..1f7bd484 100644 --- a/src/luarocks/util.lua +++ b/src/luarocks/util.lua | |||
| @@ -633,12 +633,16 @@ do | |||
| 633 | for _, d in ipairs(bindirs) do | 633 | for _, d in ipairs(bindirs) do |
| 634 | for _, name in ipairs(names) do | 634 | for _, name in ipairs(names) do |
| 635 | local lua_exe = d .. "/" .. name | 635 | local lua_exe = d .. "/" .. name |
| 636 | table.insert(tried, lua_exe) | 636 | local is_wrapper, err = util.lua_is_wrapper(lua_exe) |
| 637 | if not util.lua_is_wrapper(lua_exe) then | 637 | if is_wrapper == false then |
| 638 | local lv, ljv = util.check_lua_version(lua_exe, luaver) | 638 | local lv, ljv = util.check_lua_version(lua_exe, luaver) |
| 639 | if lv then | 639 | if lv then |
| 640 | return name, d, lv, ljv | 640 | return name, d, lv, ljv |
| 641 | end | 641 | end |
| 642 | elseif is_wrapper == true or err == nil then | ||
| 643 | table.insert(tried, lua_exe) | ||
| 644 | else | ||
| 645 | table.insert(tried, string.format("%-13s (%s)", lua_exe, err)) | ||
| 642 | end | 646 | end |
| 643 | end | 647 | end |
| 644 | end | 648 | end |
| @@ -672,8 +676,11 @@ function util.lua_is_wrapper(interp) | |||
| 672 | if not fd then | 676 | if not fd then |
| 673 | return nil, err | 677 | return nil, err |
| 674 | end | 678 | end |
| 675 | local data = fd:read(1000) | 679 | local data, err = fd:read(1000) |
| 676 | fd:close() | 680 | fd:close() |
| 681 | if not data then | ||
| 682 | return nil, err | ||
| 683 | end | ||
| 677 | return not not data:match("LUAROCKS_SYSCONFDIR") | 684 | return not not data:match("LUAROCKS_SYSCONFDIR") |
| 678 | end | 685 | end |
| 679 | 686 | ||
