mirror of https://github.com/Hilbis/Hilbish
24 lines
497 B
Lua
24 lines
497 B
Lua
|
local fs = require 'fs'
|
||
|
|
||
|
function cdHandle(inp)
|
||
|
local input, exit, err = hilbish.runner.lua(inp)
|
||
|
|
||
|
if not err then
|
||
|
return input, exit, err
|
||
|
end
|
||
|
|
||
|
input, exit, err = hilbish.runner.sh(inp)
|
||
|
|
||
|
if exit ~= 0 and hilbish.opts.autocd then
|
||
|
local ok, stat = pcall(fs.stat, input)
|
||
|
if ok and stat.isDir then
|
||
|
-- discard here to not append the cd, which will be in history
|
||
|
_, exit, err = hilbish.runner.sh('cd ' .. input)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
return input, exit, err
|
||
|
end
|
||
|
|
||
|
hilbish.runner.setMode(cdHandle)
|