fish-shell/share/functions/suspend.fish
2018-03-24 11:54:27 -05:00

29 lines
818 B
Fish

function suspend --description 'Suspend the current shell.'
set -l options 'h/help' 'f/force'
argparse -n suspend --max-args=1 $options -- $argv
or return
if set -q _flag_help
__fish_print_help suspend
return 0
end
if not set -q _flag_force
and status is-login
and status is-interactive
echo 2>&1 'Refusing to suspend interactive login shell.'
echo 2>&1 'Use --force to override. This might hang your terminal.'
return 1
end
if status is-interactive
echo -ns 'Suspending ' $fish_pid ': run'
echo -n (set_color --bold) 'kill -CONT' $fish_pid (set_color normal)
echo 'from another terminal to resume'
end
# XXX always causes a zombie until one fg's when we do this:
kill -STOP $fish_pid
end