diff options
| author | ruki <[email protected]> | 2022-07-06 06:13:42 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-07-06 06:13:42 +0800 |
| commit | a33af222859b2563da533530299ce79857820ffc (patch) | |
| tree | 13742ad9613f5a758fac07e878fa3d16c4373aab | |
| parent | 8595c98806076a08758303837a7804115b80a666 (diff) | |
| parent | 6ae0d07077fc911484460a5270d08487b55f6e7a (diff) | |
Merge pull request #2532 from SirLynix/patch-11
xmake run: Improve error message when target doesn't exist
| -rw-r--r-- | xmake/actions/run/main.lua | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/xmake/actions/run/main.lua b/xmake/actions/run/main.lua index 6daae3076..01169e139 100644 --- a/xmake/actions/run/main.lua +++ b/xmake/actions/run/main.lua @@ -94,6 +94,20 @@ function _add_target_pkgenvs(target, targets_added) end end +-- find target names matching a specific name +function _find_matching_target_names(targetname) + targetname = targetname:lower() + local matching_targetnames = {} + for _, target in ipairs(project.ordertargets()) do + if target:name():lower():find(targetname, 1, true) then + table.insert(matching_targetnames, target:name()) + end + end + + table.sort(matching_targetnames) + return matching_targetnames +end + -- run the given target function _run(target) @@ -148,7 +162,19 @@ function _check_targets(targetname, group_pattern) -- get targets local targets = {} if targetname then - local target = assert(project.target(targetname), "%s not found!", targetname) + local target = project.target(targetname) + if not target then + -- check if the name is part of other target to help + local possible_targetnames = _find_matching_target_names(targetname) + + local err = targetname .. " is not a valid target name for this project" + if #possible_targetnames > 0 then + err = err .. "\nlist of valid target names close to your input:\n - " .. table.concat(possible_targetnames, '\n - ') + end + + raise(err) + end + table.insert(targets, target) else for _, target in ipairs(project.ordertargets()) do |
