#!/bin/bash # Exit immediately if a command exits with a non-zero status. set -e # Function to install Fish shell install_fish() { echo "Installing Fish shell..." sudo apt update sudo apt install -y fish } # Function to set Fish as the default shell set_default_fish() { echo "Setting Fish as the default shell..." chsh -s $(which fish) } # Function to install Starship install_starship() { echo "Installing Starship..." curl -sS https://starship.rs/install.sh | sh -s -- -y } # Function to configure Starship for Fish configure_starship() { echo "Configuring Starship for Fish..." mkdir -p ~/.config/fish echo 'starship init fish | source' >> ~/.config/fish/config.fish } # Function to overwrite starship.toml overwrite_starship_toml() { if [ -f "./terminal/starship.toml" ]; then echo "Overwriting starship.toml..." mkdir -p ~/.config/starship cp ./terminal/starship.toml ~/.config/starship/starship.toml # Check if icon parameter is provided if [ ! -z "$icon" ]; then echo "Adding icon [$icon](bg:color_purple fg:color_white) to starship.toml..." sed -i "5i\icon = \"$icon\"" ~/.config/starship/starship.toml fi else echo "starship.toml not found in the repository." exit 1 fi } # Main script execution install_fish set_default_fish install_starship configure_starship overwrite_starship_toml echo "Fish shell and Starship prompt setup complete!"