Initial Commit
This commit is contained in:
119
README
119
README
@@ -1,2 +1,117 @@
|
|||||||
** This is another test **
|
# Fish Installer Script
|
||||||
this is a test
|
|
||||||
|
Automates installation and setup of the [Fish shell](https://fishshell.com/), the [Fisher](https://github.com/jorgebucaran/fisher) plugin manager, and a curated set of plugins.
|
||||||
|
The script detects your OS/package manager, installs Fish (if needed), ensures Fisher is present, installs/updates plugins, and can optionally set Fish as your default shell.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **OS detection** for common package managers (`apt`, `dnf`, `pacman`, `zypper`, `brew`).
|
||||||
|
- **Installs Fish** if missing; skips if already installed.
|
||||||
|
- **Installs Fisher** if missing; skips if already installed.
|
||||||
|
- **Installs/updates plugins** (listed below).
|
||||||
|
- **Optional update checks** for Fish and plugins.
|
||||||
|
- **Optional default shell change** via final prompt.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Supported Platforms (via package manager)
|
||||||
|
|
||||||
|
- Debian/Ubuntu and derivatives — `apt`
|
||||||
|
- Fedora — `dnf`
|
||||||
|
- Arch/Manjaro — `pacman`
|
||||||
|
- openSUSE — `zypper`
|
||||||
|
- macOS — `brew` (requires Homebrew pre-installed)
|
||||||
|
|
||||||
|
> If your distro isn’t listed, you can still run Fish/Fisher manually, then re-run the installer for plugin setup.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- Internet connectivity
|
||||||
|
- `curl` or `wget`
|
||||||
|
- `sudo` privileges for package installation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
Run directly from your repository (replace URL with your host/path):
|
||||||
|
|
||||||
|
curl -fsSL https://your-domain-or-gitea-instance/fish_install/raw/branch/main/fish_installer.sh | bash
|
||||||
|
|
||||||
|
The script will:
|
||||||
|
|
||||||
|
1. Detect your OS and package manager.
|
||||||
|
|
||||||
|
2. Install Fish (if absent).
|
||||||
|
|
||||||
|
3. Install Fisher (if absent).
|
||||||
|
|
||||||
|
4. Install/update the configured plugins.
|
||||||
|
|
||||||
|
5. Prompt to set Fish as your default shell.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
## Plugins Installed
|
||||||
|
|
||||||
|
- **Fisher (manager):** [https://github.com/jorgebucaran/fisher](https://github.com/jorgebucaran/fisher)
|
||||||
|
|
||||||
|
- **nvm.fish (Node versions):** [https://github.com/jorgebucaran/nvm.fish](https://github.com/jorgebucaran/nvm.fish)
|
||||||
|
|
||||||
|
- **fzf.fish (fuzzy finder integration):** [https://github.com/PatrickF1/fzf.fish](https://github.com/PatrickF1/fzf.fish)
|
||||||
|
|
||||||
|
- **tide (prompt/theme):** [https://github.com/IlanCosman/tide](https://github.com/IlanCosman/tide)
|
||||||
|
|
||||||
|
- **fish-abbreviation-tips:** [https://github.com/meaningful-ooo/fish-abbreviation-tips](https://github.com/meaningful-ooo/fish-abbreviation-tips)
|
||||||
|
|
||||||
|
|
||||||
|
> You can customize the plugin list by editing the array/list inside the script before running it.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
## Typical Output (abridged)
|
||||||
|
|
||||||
|
✓ Detected debian (apt)
|
||||||
|
✓ Fish already installed
|
||||||
|
• Checking Fish updates…
|
||||||
|
✓ Skipped update check
|
||||||
|
✓ Fisher already present
|
||||||
|
✓ All requested plugins already installed
|
||||||
|
? Set Fish as your default shell now? (y/N)
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
- **Command not found (curl/wget):** Install `curl` or `wget` with your package manager.
|
||||||
|
|
||||||
|
- **Permission denied:** Re-run with a user that has `sudo` privileges.
|
||||||
|
|
||||||
|
- **Terminal still using old shell:** Log out/in or run `chsh -s /usr/bin/fish` (path may vary; the script offers to do this).
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
## Useful Links
|
||||||
|
|
||||||
|
- **Fish Shell:** https://fishshell.com/
|
||||||
|
|
||||||
|
- **Fisher:** [https://github.com/jorgebucaran/fisher](https://github.com/jorgebucaran/fisher)
|
||||||
|
|
||||||
|
- **nvm.fish:** [https://github.com/jorgebucaran/nvm.fish](https://github.com/jorgebucaran/nvm.fish)
|
||||||
|
|
||||||
|
- **fzf.fish:** [https://github.com/PatrickF1/fzf.fish](https://github.com/PatrickF1/fzf.fish)
|
||||||
|
|
||||||
|
- **Tide Prompt:** [https://github.com/IlanCosman/tide](https://github.com/IlanCosman/tide)
|
||||||
|
|
||||||
|
- **Fish Abbreviation Tips:** [https://github.com/meaningful-ooo/fish-abbreviation-tips](https://github.com/meaningful-ooo/fish-abbreviation-tips)
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT License — You are free to use, modify, and distribute this script.
|
||||||
Reference in New Issue
Block a user