mirror of
https://github.com/Hilbis/Hilbish
synced 2025-07-03 17:52:02 +00:00
* refactor!: make runners require returning a table allows for more options for runners in the future, and makes it so that you can avoid passing certain args more easily. * feat: allow runners to specify continue in return to prompt for more input * docs: update changelog * refactor: reorder returns of handleSh function * refactor: move out reprompting and runner handling to functions makes codefactor happy hopefully. this commit includes a fix to check if after reprompt the user hits ctrl d and just exits cleanly
26 lines
515 B
Lua
26 lines
515 B
Lua
local fs = require 'fs'
|
|
|
|
function cdHandle(inp)
|
|
local res = hilbish.runner.lua(inp)
|
|
|
|
if not res.err then
|
|
return res
|
|
end
|
|
|
|
res = hilbish.runner.sh(inp)
|
|
|
|
if res.exit ~= 0 and hilbish.opts.autocd then
|
|
local ok, stat = pcall(fs.stat, res.input)
|
|
if ok and stat.isDir then
|
|
-- discard here to not append the cd, which will be in history
|
|
local _, exitCode, err = hilbish.runner.sh('cd ' .. res.input)
|
|
res.exitCode = exitCode
|
|
res.err = err
|
|
end
|
|
end
|
|
|
|
return res
|
|
end
|
|
|
|
hilbish.runner.setMode(cdHandle)
|