# Installation ## One command installation Feel free to check the `rawinstall.sh` script before running it. ```sh curl -fsSL https://raw.githubusercontent.com/curusarn/resh/master/scripts/rawinstall.sh | bash ``` ℹ️ You will need to have `bash`, `curl`, and `tar` installed. ## Clone & install ```sh git clone https://github.com/curusarn/resh.git cd resh scripts/rawinstall.sh ``` ## Build from source :warning: Building from source is intended for development and troubleshooting. ```sh git clone https://github.com/curusarn/resh.git cd resh make install ``` ## Update Once installed RESH can be updated using: ```sh reshctl update ``` ## Disabling RESH If you have a persistent issue with RESH you can temporarily disable it and then enable it later. ℹ️ You won't lose your history nor configuration. Go to `~/.zshrc` and `~/.bashrc` and comment out following lines: ```sh [[ -f ~/.resh/shellrc ]] && source ~/.resh/shellrc [[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh # bashrc only ``` The second line is bash-specific so you won't find it in `~/.zshrc` You can re-enable RESH by uncommenting the lines above or by re-installing it. ## Uninstallation You can uninstall RESH by running: `rm -rf ~/.resh/`. ⚠️ Restart all open terminals after uninstall! ### Installed files Binaries and shell files are in `~/.resh/`. Recorded history, device files, and logs are in one of: - `~/.local/share/resh/` - `$XDG_DATA_HOME/resh/` (if set) RESH config file is read from one of: - `~/.config/resh.toml` - `$XDG_CONFIG_HOME/resh.toml` (if set) RESH also adds a following lines to `~/.zshrc` and `~/.bashrc` to load itself on terminal startup: ```sh [[ -f ~/.resh/shellrc ]] && source ~/.resh/shellrc [[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh # bashrc only ``` :information_source: RESH follows [XDG directory specification ⇗](https://maex.me/2019/12/the-power-of-the-xdg-base-directory-specification/) #### Backup files During update **config** and **history** files are backed up to: - `~/.config/resh.toml.backup-` - `~/.local/share/resh/history.reshjson.backup-` - `$XDG_DATA_HOME/resh/history.reshjson.backup-` (if set) Backups allow safe rollbacks during or after installation. They are not deleted automatically. You can delete them with: ```shell rm ~/.config/resh.toml.backup-* rm ${XDG_DATA_HOME-~/.local/share}/resh/history.reshjson.backup-* ```