2018-01-19 01:15:49 +03:00
|
|
|
function suspend --description 'Suspend the current shell.'
|
2020-03-09 19:36:12 +01:00
|
|
|
set -l options h/help f/force
|
2018-01-19 01:15:49 +03:00
|
|
|
argparse -n suspend --max-args=1 $options -- $argv
|
|
|
|
or return
|
|
|
|
|
|
|
|
if set -q _flag_help
|
2016-11-27 21:27:22 -08:00
|
|
|
__fish_print_help suspend
|
2018-01-19 01:15:49 +03:00
|
|
|
return 0
|
2016-10-17 15:30:28 -07:00
|
|
|
end
|
2018-01-19 01:15:49 +03:00
|
|
|
|
|
|
|
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
|
2015-08-06 18:49:02 +02:00
|
|
|
end
|
2018-01-19 01:15:49 +03:00
|
|
|
|
|
|
|
if status is-interactive
|
2018-03-15 18:31:15 -05:00
|
|
|
echo -ns 'Suspending ' $fish_pid ': run'
|
|
|
|
echo -n (set_color --bold) 'kill -CONT' $fish_pid (set_color normal)
|
2018-01-19 01:15:49 +03:00
|
|
|
echo 'from another terminal to resume'
|
|
|
|
end
|
|
|
|
|
|
|
|
# XXX always causes a zombie until one fg's when we do this:
|
2018-03-15 18:31:15 -05:00
|
|
|
kill -STOP $fish_pid
|
2015-08-06 18:49:02 +02:00
|
|
|
end
|