diff options
| author | Hisham Muhammad <hisham@gobolinux.org> | 2024-02-17 15:46:01 -0300 |
|---|---|---|
| committer | Hisham Muhammad <hisham@gobolinux.org> | 2024-02-18 20:49:05 -0300 |
| commit | d83b908a7371360d117cabbf6da099170f5fb178 (patch) | |
| tree | f795b4f1e362da5d8204a6433ff7927888ada222 /src | |
| parent | 4eee542ddcbde8df3bd64eee0bda87d6b96e0005 (diff) | |
| download | luarocks-d83b908a7371360d117cabbf6da099170f5fb178.tar.gz luarocks-d83b908a7371360d117cabbf6da099170f5fb178.tar.bz2 luarocks-d83b908a7371360d117cabbf6da099170f5fb178.zip | |
drop cfg.lua_interpreter, use cfg.variables.LUA
Diffstat (limited to 'src')
| -rw-r--r-- | src/luarocks/cmd.lua | 68 | ||||
| -rw-r--r-- | src/luarocks/cmd/config.lua | 3 | ||||
| -rw-r--r-- | src/luarocks/cmd/init.lua | 14 | ||||
| -rw-r--r-- | src/luarocks/core/cfg.lua | 42 | ||||
| -rw-r--r-- | src/luarocks/fs/lua.lua | 2 | ||||
| -rw-r--r-- | src/luarocks/fs/unix.lua | 2 | ||||
| -rw-r--r-- | src/luarocks/fs/win32.lua | 2 | ||||
| -rw-r--r-- | src/luarocks/test/command.lua | 3 | ||||
| -rw-r--r-- | src/luarocks/util.lua | 30 |
9 files changed, 98 insertions, 68 deletions
diff --git a/src/luarocks/cmd.lua b/src/luarocks/cmd.lua index 250e3cff..9c3d91db 100644 --- a/src/luarocks/cmd.lua +++ b/src/luarocks/cmd.lua | |||
| @@ -184,7 +184,11 @@ local function die(message, exitcode) | |||
| 184 | os.exit(exitcode or cmd.errorcodes.UNSPECIFIED) | 184 | os.exit(exitcode or cmd.errorcodes.UNSPECIFIED) |
| 185 | end | 185 | end |
| 186 | 186 | ||
| 187 | local function search_lua_in_path(lua_version, verbose) | 187 | local function search_lua(lua_version, verbose, search_at) |
| 188 | if search_at then | ||
| 189 | return util.find_lua(search_at, lua_version, verbose) | ||
| 190 | end | ||
| 191 | |||
| 188 | local path_sep = (package.config:sub(1, 1) == "\\" and ";" or ":") | 192 | local path_sep = (package.config:sub(1, 1) == "\\" and ";" or ":") |
| 189 | local all_tried = {} | 193 | local all_tried = {} |
| 190 | for bindir in (os.getenv("PATH") or ""):gmatch("[^"..path_sep.."]+") do | 194 | for bindir in (os.getenv("PATH") or ""):gmatch("[^"..path_sep.."]+") do |
| @@ -284,7 +288,7 @@ do | |||
| 284 | end | 288 | end |
| 285 | 289 | ||
| 286 | if lua_version then | 290 | if lua_version then |
| 287 | local detected = search_lua_in_path(lua_version) | 291 | local detected = search_lua(lua_version) |
| 288 | if detected then | 292 | if detected then |
| 289 | return detected | 293 | return detected |
| 290 | end | 294 | end |
| @@ -497,6 +501,19 @@ Enabling completion for Fish: | |||
| 497 | return parser | 501 | return parser |
| 498 | end | 502 | end |
| 499 | 503 | ||
| 504 | local function get_first_arg() | ||
| 505 | if not arg then | ||
| 506 | return | ||
| 507 | end | ||
| 508 | local first_arg = arg[0] | ||
| 509 | local i = -1 | ||
| 510 | while arg[i] do | ||
| 511 | first_arg = arg[i] | ||
| 512 | i = i -1 | ||
| 513 | end | ||
| 514 | return first_arg | ||
| 515 | end | ||
| 516 | |||
| 500 | --- Main command-line processor. | 517 | --- Main command-line processor. |
| 501 | -- Parses input arguments and calls the appropriate driver function | 518 | -- Parses input arguments and calls the appropriate driver function |
| 502 | -- to execute the action requested on the command-line, forwarding | 519 | -- to execute the action requested on the command-line, forwarding |
| @@ -610,20 +627,47 @@ function cmd.run_command(description, commands, external_namespace, ...) | |||
| 610 | -- try again now. | 627 | -- try again now. |
| 611 | local tried | 628 | local tried |
| 612 | if not lua_found then | 629 | if not lua_found then |
| 613 | if cfg.variables.LUA_DIR then | 630 | local detected |
| 614 | lua_found, tried = util.find_lua(cfg.variables.LUA_DIR, cfg.lua_version, args.verbose) | 631 | detected, tried = search_lua(cfg.lua_version, args.verbose, cfg.variables.LUA_DIR) |
| 615 | else | 632 | if detected then |
| 616 | lua_found, tried = search_lua_in_path(cfg.lua_version, args.verbose) | 633 | lua_found = true |
| 634 | cfg.variables.LUA = detected.lua | ||
| 635 | cfg.variables.LUA_DIR = detected.lua_dir | ||
| 636 | cfg.variables.LUA_BINDIR = detected.lua_bindir | ||
| 637 | if args.lua_dir then | ||
| 638 | cfg.variables.LUA_INCDIR = nil | ||
| 639 | cfg.variables.LUA_LIBDIR = nil | ||
| 640 | end | ||
| 617 | end | 641 | end |
| 618 | end | 642 | end |
| 619 | 643 | ||
| 620 | if not lua_found and args.command ~= "config" and args.command ~= "help" then | 644 | if lua_found then |
| 621 | util.warning(tried .. | 645 | assert(cfg.variables.LUA) |
| 622 | "\nModules may not install with the correct configurations. " .. | 646 | else |
| 623 | "You may want to configure the path prefix to your build " .. | 647 | if args.command ~= "config" and args.command ~= "help" then |
| 624 | "of Lua " .. cfg.lua_version .. " using\n\n" .. | 648 | util.warning(tried .. |
| 625 | " luarocks config --local lua_dir <your-lua-prefix>\n") | 649 | "\nModules may not install with the correct configurations. " .. |
| 650 | "You may want to configure the path prefix to your build " .. | ||
| 651 | "of Lua " .. cfg.lua_version .. " using\n\n" .. | ||
| 652 | " luarocks config --local lua_dir <your-lua-prefix>\n") | ||
| 653 | end | ||
| 654 | |||
| 655 | -- Fallback producing _some_ Lua configuration based on the running interpreter. | ||
| 656 | -- Most likely won't produce correct results when running from the standalone binary, | ||
| 657 | -- so eventually we need to drop this and outright fail if Lua is not found | ||
| 658 | -- or explictly configured | ||
| 659 | if not cfg.variables.LUA then | ||
| 660 | local first_arg = get_first_arg() | ||
| 661 | cfg.variables.LUA_DIR = dir.dir_name(fs.absolute_name(first_arg)) | ||
| 662 | cfg.variables.LUA_BINDIR = cfg.variables.LUA_DIR | ||
| 663 | local exe = fs.base_name(first_arg) | ||
| 664 | exe = exe:match("rocks") and ("lua" .. (cfg.arch:match("win") and ".exe" or "")) or exe | ||
| 665 | cfg.variables.LUA = dir.path(cfg.variables.LUA_BINDIR, exe) | ||
| 666 | cfg.variables.LUA_INCDIR = nil | ||
| 667 | cfg.variables.LUA_LIBDIR = nil | ||
| 668 | end | ||
| 626 | end | 669 | end |
| 670 | |||
| 627 | cfg.lua_found = lua_found | 671 | cfg.lua_found = lua_found |
| 628 | 672 | ||
| 629 | if cfg.project_dir then | 673 | if cfg.project_dir then |
diff --git a/src/luarocks/cmd/config.lua b/src/luarocks/cmd/config.lua index d9b679df..7ad28777 100644 --- a/src/luarocks/cmd/config.lua +++ b/src/luarocks/cmd/config.lua | |||
| @@ -18,7 +18,6 @@ Query information about the LuaRocks configuration. | |||
| 18 | any command-line flags passed) | 18 | any command-line flags passed) |
| 19 | 19 | ||
| 20 | Examples: | 20 | Examples: |
| 21 | luarocks config lua_interpreter | ||
| 22 | luarocks config variables.LUA_INCDIR | 21 | luarocks config variables.LUA_INCDIR |
| 23 | luarocks config lua_version | 22 | luarocks config lua_version |
| 24 | 23 | ||
| @@ -300,7 +299,7 @@ function config_cmd.command(args) | |||
| 300 | ["variables.LUA_BINDIR"] = cfg.variables.LUA_BINDIR, | 299 | ["variables.LUA_BINDIR"] = cfg.variables.LUA_BINDIR, |
| 301 | ["variables.LUA_INCDIR"] = cfg.variables.LUA_INCDIR, | 300 | ["variables.LUA_INCDIR"] = cfg.variables.LUA_INCDIR, |
| 302 | ["variables.LUA_LIBDIR"] = cfg.variables.LUA_LIBDIR, | 301 | ["variables.LUA_LIBDIR"] = cfg.variables.LUA_LIBDIR, |
| 303 | ["lua_interpreter"] = cfg.lua_interpreter, | 302 | ["variables.LUA"] = cfg.variables.LUA, |
| 304 | } | 303 | } |
| 305 | if args.lua_version then | 304 | if args.lua_version then |
| 306 | local prefix = dir.dir_name(cfg.config_files[scope].file) | 305 | local prefix = dir.dir_name(cfg.config_files[scope].file) |
diff --git a/src/luarocks/cmd/init.lua b/src/luarocks/cmd/init.lua index efd612e4..543a720b 100644 --- a/src/luarocks/cmd/init.lua +++ b/src/luarocks/cmd/init.lua | |||
| @@ -78,8 +78,7 @@ local function write_wrapper_scripts(wrapper_dir, luarocks_wrapper, lua_wrapper) | |||
| 78 | end | 78 | end |
| 79 | 79 | ||
| 80 | if write_lua_wrapper then | 80 | if write_lua_wrapper then |
| 81 | local interp = dir.path(cfg.variables["LUA_BINDIR"], cfg.lua_interpreter) | 81 | if util.check_lua_version(cfg.variables.LUA, cfg.lua_version) then |
| 82 | if util.check_lua_version(interp, cfg.lua_version) then | ||
| 83 | util.printout("Preparing " .. lua_wrapper .. " for version " .. cfg.lua_version .. "...") | 82 | util.printout("Preparing " .. lua_wrapper .. " for version " .. cfg.lua_version .. "...") |
| 84 | path.use_tree(tree) | 83 | path.use_tree(tree) |
| 85 | fs.wrap_script(nil, lua_wrapper, "all") | 84 | fs.wrap_script(nil, lua_wrapper, "all") |
| @@ -160,21 +159,12 @@ function init.command(args) | |||
| 160 | 159 | ||
| 161 | local config_tbl, err = persist.load_config_file_if_basic(config_file, cfg) | 160 | local config_tbl, err = persist.load_config_file_if_basic(config_file, cfg) |
| 162 | if config_tbl then | 161 | if config_tbl then |
| 163 | local globals = { | ||
| 164 | "lua_interpreter", | ||
| 165 | } | ||
| 166 | for _, v in ipairs(globals) do | ||
| 167 | if cfg[v] then | ||
| 168 | config_tbl[v] = cfg[v] | ||
| 169 | end | ||
| 170 | end | ||
| 171 | |||
| 172 | local varnames = { | 162 | local varnames = { |
| 173 | "LUA_DIR", | 163 | "LUA_DIR", |
| 174 | "LUA_INCDIR", | 164 | "LUA_INCDIR", |
| 175 | "LUA_LIBDIR", | 165 | "LUA_LIBDIR", |
| 176 | "LUA_BINDIR", | 166 | "LUA_BINDIR", |
| 177 | "LUA_INTERPRETER", | 167 | "LUA", |
| 178 | } | 168 | } |
| 179 | for _, varname in ipairs(varnames) do | 169 | for _, varname in ipairs(varnames) do |
| 180 | if cfg.variables[varname] then | 170 | if cfg.variables[varname] then |
diff --git a/src/luarocks/core/cfg.lua b/src/luarocks/core/cfg.lua index 81987cc9..2e5301c1 100644 --- a/src/luarocks/core/cfg.lua +++ b/src/luarocks/core/cfg.lua | |||
| @@ -175,7 +175,6 @@ local function make_defaults(lua_version, target_cpu, platforms, home) | |||
| 175 | -- Configure defaults: | 175 | -- Configure defaults: |
| 176 | local defaults = { | 176 | local defaults = { |
| 177 | 177 | ||
| 178 | lua_interpreter = "lua", | ||
| 179 | local_by_default = false, | 178 | local_by_default = false, |
| 180 | accept_unknown_fields = false, | 179 | accept_unknown_fields = false, |
| 181 | fs_use_modules = true, | 180 | fs_use_modules = true, |
| @@ -556,19 +555,6 @@ local function use_defaults(cfg, defaults) | |||
| 556 | end | 555 | end |
| 557 | end | 556 | end |
| 558 | 557 | ||
| 559 | local function get_first_arg() | ||
| 560 | if not arg then | ||
| 561 | return | ||
| 562 | end | ||
| 563 | local first_arg = arg[0] | ||
| 564 | local i = -1 | ||
| 565 | while arg[i] do | ||
| 566 | first_arg = arg[i] | ||
| 567 | i = i -1 | ||
| 568 | end | ||
| 569 | return first_arg | ||
| 570 | end | ||
| 571 | |||
| 572 | -------------------------------------------------------------------------------- | 558 | -------------------------------------------------------------------------------- |
| 573 | 559 | ||
| 574 | local cfg = {} | 560 | local cfg = {} |
| @@ -580,7 +566,7 @@ local cfg = {} | |||
| 580 | -- * lua_version (in x.y format, e.g. "5.3") | 566 | -- * lua_version (in x.y format, e.g. "5.3") |
| 581 | -- * lua_bindir (e.g. "/usr/local/bin") | 567 | -- * lua_bindir (e.g. "/usr/local/bin") |
| 582 | -- * lua_dir (e.g. "/usr/local") | 568 | -- * lua_dir (e.g. "/usr/local") |
| 583 | -- * lua_interpreter (e.g. "lua-5.3") | 569 | -- * lua (e.g. "/usr/local/bin/lua-5.3") |
| 584 | -- * project_dir (a string with the path of the project directory | 570 | -- * project_dir (a string with the path of the project directory |
| 585 | -- when using per-project environments, as created with `luarocks init`) | 571 | -- when using per-project environments, as created with `luarocks init`) |
| 586 | -- @param warning a logging function for warnings that takes a string | 572 | -- @param warning a logging function for warnings that takes a string |
| @@ -615,16 +601,15 @@ function cfg.init(detected, warning) | |||
| 615 | 601 | ||
| 616 | -- Use detected values as defaults, overridable via config files or CLI args | 602 | -- Use detected values as defaults, overridable via config files or CLI args |
| 617 | 603 | ||
| 618 | local first_arg = get_first_arg() | ||
| 619 | |||
| 620 | cfg.lua_version = detected.lua_version or hardcoded.LUA_VERSION or _VERSION:sub(5) | 604 | cfg.lua_version = detected.lua_version or hardcoded.LUA_VERSION or _VERSION:sub(5) |
| 621 | cfg.lua_interpreter = detected.lua_interpreter or hardcoded.LUA_INTERPRETER or (first_arg and first_arg:gsub(".*[\\/]", "")) or (is_windows and "lua.exe" or "lua") | ||
| 622 | cfg.project_dir = (not hardcoded.FORCE_CONFIG) and detected.project_dir | 605 | cfg.project_dir = (not hardcoded.FORCE_CONFIG) and detected.project_dir |
| 623 | 606 | ||
| 624 | do | 607 | do |
| 625 | local lua_bindir = detected.lua_bindir or hardcoded.LUA_BINDIR or (first_arg and first_arg:gsub("[\\/][^\\/]+$", "")) | 608 | local lua = detected.lua or hardcoded.LUA |
| 626 | local lua_dir = detected.lua_dir or hardcoded.LUA_DIR or (lua_bindir and lua_bindir:gsub("[\\/]bin$", "")) | 609 | local lua_bindir = detected.lua_bindir or hardcoded.LUA_BINDIR |
| 610 | local lua_dir = detected.lua_dir or hardcoded.LUA_DIR | ||
| 627 | cfg.variables = { | 611 | cfg.variables = { |
| 612 | LUA = lua, | ||
| 628 | LUA_DIR = lua_dir, | 613 | LUA_DIR = lua_dir, |
| 629 | LUA_BINDIR = lua_bindir, | 614 | LUA_BINDIR = lua_bindir, |
| 630 | LUA_LIBDIR = hardcoded.LUA_LIBDIR, | 615 | LUA_LIBDIR = hardcoded.LUA_LIBDIR, |
| @@ -756,6 +741,11 @@ function cfg.init(detected, warning) | |||
| 756 | end | 741 | end |
| 757 | end | 742 | end |
| 758 | 743 | ||
| 744 | -- backwards compatibility: | ||
| 745 | if cfg.lua_interpreter and cfg.variables.LUA_BINDIR and not cfg.variables.LUA then | ||
| 746 | cfg.variables.LUA = (cfg.variables.LUA_BINDIR .. "/" .. cfg.lua_interpreter):gsub("\\", "/") | ||
| 747 | end | ||
| 748 | |||
| 759 | ---------------------------------------- | 749 | ---------------------------------------- |
| 760 | -- Config files are loaded. | 750 | -- Config files are loaded. |
| 761 | -- Let's finish up the cfg table. | 751 | -- Let's finish up the cfg table. |
| @@ -765,11 +755,11 @@ function cfg.init(detected, warning) | |||
| 765 | cfg.project_dir = detected.given_project_dir or cfg.project_dir | 755 | cfg.project_dir = detected.given_project_dir or cfg.project_dir |
| 766 | cfg.lua_version = detected.given_lua_version or cfg.lua_version | 756 | cfg.lua_version = detected.given_lua_version or cfg.lua_version |
| 767 | if detected.given_lua_dir then | 757 | if detected.given_lua_dir then |
| 758 | cfg.variables.LUA = detected.lua | ||
| 768 | cfg.variables.LUA_DIR = detected.given_lua_dir | 759 | cfg.variables.LUA_DIR = detected.given_lua_dir |
| 769 | cfg.variables.LUA_BINDIR = detected.lua_bindir | 760 | cfg.variables.LUA_BINDIR = detected.lua_bindir |
| 770 | cfg.variables.LUA_LIBDIR = nil | 761 | cfg.variables.LUA_LIBDIR = nil |
| 771 | cfg.variables.LUA_INCDIR = nil | 762 | cfg.variables.LUA_INCDIR = nil |
| 772 | cfg.lua_interpreter = detected.lua_interpreter | ||
| 773 | end | 763 | end |
| 774 | 764 | ||
| 775 | -- Build a default list of rocks trees if not given | 765 | -- Build a default list of rocks trees if not given |
| @@ -794,9 +784,17 @@ function cfg.init(detected, warning) | |||
| 794 | defaults.fs_use_modules = true | 784 | defaults.fs_use_modules = true |
| 795 | end | 785 | end |
| 796 | 786 | ||
| 787 | -- if only cfg.variables.LUA is given in config files, | ||
| 788 | -- derive LUA_BINDIR and LUA_DIR from them. | ||
| 789 | if cfg.variables.LUA and not cfg.variables.LUA_BINDIR then | ||
| 790 | cfg.variables.LUA_BINDIR = cfg.variables.LUA:gsub("^(.*)[/\\][^/\\]*$") | ||
| 791 | if not cfg.variables.LUA_DIR then | ||
| 792 | cfg.variables.LUA_DIR = cfg.variables.LUA_BINDIR:gsub("[/\\]bin$", "") or cfg.variables.LUA_BINDIR | ||
| 793 | end | ||
| 794 | end | ||
| 795 | |||
| 797 | use_defaults(cfg, defaults) | 796 | use_defaults(cfg, defaults) |
| 798 | 797 | ||
| 799 | cfg.variables.LUA = cfg.variables.LUA or (cfg.variables.LUA_BINDIR and (cfg.variables.LUA_BINDIR .. "/" .. cfg.lua_interpreter):gsub("//", "/")) | ||
| 800 | cfg.user_agent = "LuaRocks/"..cfg.program_version.." "..cfg.arch | 798 | cfg.user_agent = "LuaRocks/"..cfg.program_version.." "..cfg.arch |
| 801 | 799 | ||
| 802 | cfg.config_files = { | 800 | cfg.config_files = { |
diff --git a/src/luarocks/fs/lua.lua b/src/luarocks/fs/lua.lua index 0805efd2..e9b4c5d8 100644 --- a/src/luarocks/fs/lua.lua +++ b/src/luarocks/fs/lua.lua | |||
| @@ -1188,7 +1188,7 @@ end | |||
| 1188 | -- @return boolean true, if it is a Lua script, false otherwise | 1188 | -- @return boolean true, if it is a Lua script, false otherwise |
| 1189 | function fs_lua.is_lua(filename) | 1189 | function fs_lua.is_lua(filename) |
| 1190 | filename = filename:gsub([[%\]],"/") -- normalize on fw slash to prevent escaping issues | 1190 | filename = filename:gsub([[%\]],"/") -- normalize on fw slash to prevent escaping issues |
| 1191 | local lua = fs.Q(dir.path(cfg.variables["LUA_BINDIR"], cfg.lua_interpreter)) -- get lua interpreter configured | 1191 | local lua = fs.Q(cfg.variables.LUA) -- get lua interpreter configured |
| 1192 | -- execute on configured interpreter, might not be the same as the interpreter LR is run on | 1192 | -- execute on configured interpreter, might not be the same as the interpreter LR is run on |
| 1193 | local result = fs.execute_string(lua..[[ -e "if loadfile(']]..filename..[[') then os.exit(0) else os.exit(1) end"]]) | 1193 | local result = fs.execute_string(lua..[[ -e "if loadfile(']]..filename..[[') then os.exit(0) else os.exit(1) end"]]) |
| 1194 | return (result == true) | 1194 | return (result == true) |
diff --git a/src/luarocks/fs/unix.lua b/src/luarocks/fs/unix.lua index 61569e30..f3db5b30 100644 --- a/src/luarocks/fs/unix.lua +++ b/src/luarocks/fs/unix.lua | |||
| @@ -108,7 +108,7 @@ function unix.wrap_script(script, target, deps_mode, name, version, ...) | |||
| 108 | end | 108 | end |
| 109 | 109 | ||
| 110 | local argv = { | 110 | local argv = { |
| 111 | fs.Q(dir.path(cfg.variables["LUA_BINDIR"], cfg.lua_interpreter)), | 111 | fs.Q(cfg.variables["LUA"]), |
| 112 | "-e", | 112 | "-e", |
| 113 | fs.Q(table.concat(luainit, ";")), | 113 | fs.Q(table.concat(luainit, ";")), |
| 114 | script and fs.Q(script) or [[$([ "$*" ] || echo -i)]], | 114 | script and fs.Q(script) or [[$([ "$*" ] || echo -i)]], |
diff --git a/src/luarocks/fs/win32.lua b/src/luarocks/fs/win32.lua index 1a35c3d4..1842ac4c 100644 --- a/src/luarocks/fs/win32.lua +++ b/src/luarocks/fs/win32.lua | |||
| @@ -195,7 +195,7 @@ function win32.wrap_script(script, target, deps_mode, name, version, ...) | |||
| 195 | end | 195 | end |
| 196 | 196 | ||
| 197 | local argv = { | 197 | local argv = { |
| 198 | fs.Qb(dir.path(cfg.variables["LUA_BINDIR"], cfg.lua_interpreter)), | 198 | fs.Qb(cfg.variables["LUA"]), |
| 199 | "-e", | 199 | "-e", |
| 200 | fs.Qb(table.concat(luainit, ";")), | 200 | fs.Qb(table.concat(luainit, ";")), |
| 201 | script and fs.Qb(script) or "%I%", | 201 | script and fs.Qb(script) or "%I%", |
diff --git a/src/luarocks/test/command.lua b/src/luarocks/test/command.lua index 58fa22cb..afdb5cb6 100644 --- a/src/luarocks/test/command.lua +++ b/src/luarocks/test/command.lua | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | local command = {} | 2 | local command = {} |
| 3 | 3 | ||
| 4 | local fs = require("luarocks.fs") | 4 | local fs = require("luarocks.fs") |
| 5 | local dir = require("luarocks.dir") | ||
| 6 | local cfg = require("luarocks.core.cfg") | 5 | local cfg = require("luarocks.core.cfg") |
| 7 | 6 | ||
| 8 | local unpack = table.unpack or unpack | 7 | local unpack = table.unpack or unpack |
| @@ -31,7 +30,7 @@ function command.run_tests(test, args) | |||
| 31 | if not fs.exists(test.script) then | 30 | if not fs.exists(test.script) then |
| 32 | return nil, "Test script " .. test.script .. " does not exist" | 31 | return nil, "Test script " .. test.script .. " does not exist" |
| 33 | end | 32 | end |
| 34 | local lua = fs.Q(dir.path(cfg.variables["LUA_BINDIR"], cfg.lua_interpreter)) -- get lua interpreter configured | 33 | local lua = fs.Q(cfg.variables["LUA"]) -- get lua interpreter configured |
| 35 | ok = fs.execute(lua, test.script, unpack(args)) | 34 | ok = fs.execute(lua, test.script, unpack(args)) |
| 36 | elseif test.command then | 35 | elseif test.command then |
| 37 | ok = fs.execute(test.command, unpack(args)) | 36 | ok = fs.execute(test.command, unpack(args)) |
diff --git a/src/luarocks/util.lua b/src/luarocks/util.lua index dd05b4ac..0a900ecc 100644 --- a/src/luarocks/util.lua +++ b/src/luarocks/util.lua | |||
| @@ -434,11 +434,11 @@ do | |||
| 434 | return '"' .. pathname .. '"' | 434 | return '"' .. pathname .. '"' |
| 435 | end | 435 | end |
| 436 | 436 | ||
| 437 | function util.check_lua_version(lua_exe, luaver) | 437 | function util.check_lua_version(lua, luaver) |
| 438 | if not util.exists(lua_exe) then | 438 | if not util.exists(lua) then |
| 439 | return nil | 439 | return nil |
| 440 | end | 440 | end |
| 441 | local lv, err = util.popen_read(Q(lua_exe) .. ' -e "io.write(_VERSION:sub(5))"') | 441 | local lv, err = util.popen_read(Q(lua) .. ' -e "io.write(_VERSION:sub(5))"') |
| 442 | if lv == "" then | 442 | if lv == "" then |
| 443 | return nil | 443 | return nil |
| 444 | end | 444 | end |
| @@ -457,8 +457,8 @@ do | |||
| 457 | 457 | ||
| 458 | local ljv | 458 | local ljv |
| 459 | if cfg.lua_version == "5.1" then | 459 | if cfg.lua_version == "5.1" then |
| 460 | -- Ignores extra version info for custom builds, e.g. "LuaJIT 2.1.0-beta3 some-other-version-info" | 460 | -- Ignores extra version info for custom builds, e.g. "LuaJIT 2.1.0-beta3 some-other-version-info" |
| 461 | ljv = util.popen_read(Q(cfg.variables["LUA_BINDIR"] .. "/" .. cfg.lua_interpreter) .. ' -e "io.write(tostring(jit and jit.version:gsub([[^%S+ (%S+).*]], [[%1]])))"') | 461 | ljv = util.popen_read(Q(cfg.variables.LUA) .. ' -e "io.write(tostring(jit and jit.version:gsub([[^%S+ (%S+).*]], [[%1]])))"') |
| 462 | if ljv == "nil" then | 462 | if ljv == "nil" then |
| 463 | ljv = nil | 463 | ljv = nil |
| 464 | end | 464 | end |
| @@ -502,17 +502,17 @@ do | |||
| 502 | local dir_sep = package.config:sub(1, 1) | 502 | local dir_sep = package.config:sub(1, 1) |
| 503 | for _, d in ipairs({ prefix .. dir_sep .. "bin", prefix }) do | 503 | for _, d in ipairs({ prefix .. dir_sep .. "bin", prefix }) do |
| 504 | for _, name in ipairs(names) do | 504 | for _, name in ipairs(names) do |
| 505 | local lua_exe = d .. dir_sep .. name | 505 | local lua = d .. dir_sep .. name |
| 506 | local is_wrapper, err = util.lua_is_wrapper(lua_exe) | 506 | local is_wrapper, err = util.lua_is_wrapper(lua) |
| 507 | if is_wrapper == false then | 507 | if is_wrapper == false then |
| 508 | local lv = util.check_lua_version(lua_exe, luaver) | 508 | local lv = util.check_lua_version(lua, luaver) |
| 509 | if lv then | 509 | if lv then |
| 510 | return name, d, lv | 510 | return lua, d, lv |
| 511 | end | 511 | end |
| 512 | elseif is_wrapper == true or err == nil then | 512 | elseif is_wrapper == true or err == nil then |
| 513 | table.insert(tried, lua_exe) | 513 | table.insert(tried, lua) |
| 514 | else | 514 | else |
| 515 | table.insert(tried, string.format("%-13s (%s)", lua_exe, err)) | 515 | table.insert(tried, string.format("%-13s (%s)", lua, err)) |
| 516 | end | 516 | end |
| 517 | end | 517 | end |
| 518 | end | 518 | end |
| @@ -525,15 +525,15 @@ do | |||
| 525 | end | 525 | end |
| 526 | 526 | ||
| 527 | function util.find_lua(prefix, luaver, verbose) | 527 | function util.find_lua(prefix, luaver, verbose) |
| 528 | local lua_interpreter, bindir | 528 | local lua, bindir |
| 529 | lua_interpreter, bindir, luaver = find_lua_bindir(prefix, luaver, verbose) | 529 | lua, bindir, luaver = find_lua_bindir(prefix, luaver, verbose) |
| 530 | if not lua_interpreter then | 530 | if not lua then |
| 531 | return nil, bindir | 531 | return nil, bindir |
| 532 | end | 532 | end |
| 533 | 533 | ||
| 534 | return { | 534 | return { |
| 535 | lua_version = luaver, | 535 | lua_version = luaver, |
| 536 | lua_interpreter = lua_interpreter, | 536 | lua = lua, |
| 537 | lua_dir = prefix, | 537 | lua_dir = prefix, |
| 538 | lua_bindir = bindir, | 538 | lua_bindir = bindir, |
| 539 | } | 539 | } |
