mirror of
https://github.com/oh-my-fish/oh-my-fish.git
synced 2025-02-16 05:32:44 +08:00
![Derek Stavis](/assets/img/avatar_default.png)
This commit adds an improved reload code for Oh My Fish, besides saving the history now the reloading technique keeps directory history and stack and clears fish_greeting, for a transparent transition. The reloading code is now safe regarding to background jobs. exec wipes fish job control, so the user-facing code under the (just- introduced by this commit) `omf reload` command is kept safe by a warning. For testing purposes, `omf update` and `omf remove` rolls automatic refresh only when `OMF_AUTO_RELOAD` variable is set. Recap of the commit: - Add improved reload code (omf.reload) - Add a safe reload code (omf.cli.reload) - Add `omf reload` command - Add opt-in reload to `omf update` and `omf remove` commands
19 lines
505 B
Fish
19 lines
505 B
Fish
function omf.cli.reload
|
|
if not contains -- --force $argv
|
|
if count (jobs) >/dev/null ^&1
|
|
__omf.cli.reload.job_warning
|
|
return 1
|
|
end
|
|
end
|
|
omf.reload
|
|
end
|
|
|
|
function __omf.cli.reload.job_warning
|
|
echo (set_color -u)"Reload aborted. There are background jobs:"(set_color normal)
|
|
echo
|
|
jobs
|
|
echo
|
|
echo "For your safety, finish all background jobs before reloading Oh My Fish."
|
|
echo "If you are absolutely sure of what you are doing, you can bypass this check using --force."
|
|
end
|