local fs = require 'fs'

local oldShRunner = hilbish.runner.sh
function hilbish.runner.sh(input)
	local res = oldShRunner(input)

	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