Refactor the installer to be more maintainable and interactive. The installer is now more robust and safe in its operation, and asks interactive questions for choices that the user must resolve. Setting up confuguration is also now changed to take advantage of Fish 2.3 features and does not mess with user's configuration files without permission.
- Make installer smarter and use uninstaller in destroy
- Better handling and checking for offline installs
- `omf destroy` simply uses `install --uninstall`
- Final warning message is no longer displayed when user intentionally aborts install
- Backups are restored during uninstall
- Update the README to detail the new ways to install OMF
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
This updates omf plugin to new architecture, moving
functions to `functions` directory. It also revamps the
separation of concerns between CLI and underlying
implementations, organizing them into directories,
whose are autoloaded in plugin startup.