#!/usr/bin/env fish
set -x -g FISHAMNIUM_COLOR_RESET "\x1b[0m"
set -x -g FISHAMNIUM_COLOR_BOLD "\x1b[1m"
set -x -g FISHAMNIUM_COLOR_NORMAL "\x1b[22m"
set -x -g FISHAMNIUM_COLOR_ERROR "\x1b[31m\x1b[1m"
set -x -g FISHAMNIUM_COLOR_SUCCESS "\x1b[32m\x1b[1m"
set -x -g FISHAMNIUM_COLOR_PRIMARY "\x1b[35m\x1b[1m"
set -x -g FISHAMNIUM_COLOR_SECONDARY "\x1b[34m\x1b[1m"
# Check fish version and other dependencies
set version_tokens $(string split -- "." "$version")
if test $version_tokens[1] -lt 3 -o $version_tokens[1] -lt 3
echo -e "$FISHAMNIUM_COLOR_ERRORFishamnium requires Fish $FISHAMNIUM_COLOR_RESET3.3.0$FISHAMNIUM_COLOR_ERROR or greater, while you are on $FISHAMNIUM_COLOR_RESET$version$FISHAMNIUM_COLOR_ERROR.$FISHAMNIUM_COLOR_RESET"
exit 1
end
if ! which yq >/dev/null 2>/dev/null
echo -e "$FISHAMNIUM_COLOR_ERRORFishamnium requires yq $FISHAMNIUM_COLOR_RESET4.18.1$FISHAMNIUM_COLOR_ERROR or greater. Please check $FISHAMNIUM_COLOR_RESEThttp://mikefarah.github.io/yq/#install$FISHAMNIUM_COLOR_ERROR.$FISHAMNIUM_COLOR_RESET"
exit 1
end
if ! which starship >/dev/null 2>/dev/null
echo -e "$FISHAMNIUM_COLOR_ERRORFishamnium requires starship $FISHAMNIUM_COLOR_RESET1.2.1$FISHAMNIUM_COLOR_ERROR or greater. Please check $FISHAMNIUM_COLOR_RESEThttps://starship.rs/guide/#🚀-installation$FISHAMNIUM_COLOR_ERROR.$FISHAMNIUM_COLOR_RESET"
exit 1
end
# Set global parameters
argparse "l/local" "u/ininstall" -- $argv
set origPwd $PWD
set repo ShogunPanda/fishamnium
set target ~/.config/fish/fishamnium
set loaderDirectory ~/.config/fish/conf.d
set loader "$loaderDirectory/fishamnium.fish"
set source /tmp/fishamnium-(date +%Y%m%d%H%M%S)
# Check main operation
if ! set -q _flag_u
# Clone locally if asked to
if ! set -q _flag_l
set fishamniumVersion $(curl -s https://api.github.com/repos/$repo/releases | yq ".[0].tag_name | sub(\"v\", \"\")")
echo -e "$FISHAMNIUM_COLOR_PRIMARY--> Downloading Fishamnium $fishamniumVersion into $FISHAMNIUM_COLOR_RESET$source$FISHAMNIUM_COLOR_PRIMARY ...$FISHAMNIUM_COLOR_RESET"
mkdir -p $source; or exit 1
curl -sSL -o $source/fishamnium.tar.gz https://github.com/$repo/archive/refs/tags/v$fishamniumVersion.tar.gz; or exit 1
tar -zxf $source/fishamnium.tar.gz -C $source --strip-components=1; or exit 1
cd "$source"
end
# Remove previous installations
echo -e "$FISHAMNIUM_COLOR_PRIMARY--> Removing any previous fishamnium installations in $FISHAMNIUM_COLOR_RESET$target$FISHAMNIUM_COLOR_PRIMARY ...$FISHAMNIUM_COLOR_RESET"
command rm -rf "$target" "$loader"; or exit 1
# Create required directories
echo -e "$FISHAMNIUM_COLOR_PRIMARY--> Creating required directories ...$FISHAMNIUM_COLOR_RESET"
command mkdir -vp "$target" "$loaderDirectory"; or exit 1
# Copy files
echo -e "$FISHAMNIUM_COLOR_PRIMARY--> Copying fishamnium in $FISHAMNIUM_COLOR_RESET$target$FISHAMNIUM_COLOR_PRIMARY ...$FISHAMNIUM_COLOR_RESET"
command cp -av data completions plugins themes installer version "$target" | sort; or exit 1
echo -e "$FISHAMNIUM_COLOR_PRIMARY--> Copying loader file in $FISHAMNIUM_COLOR_RESET$loader$FISHAMNIUM_COLOR_PRIMARY ...$FISHAMNIUM_COLOR_RESET"
command cp -av loader.fish "$loader"; or exit 1
# Ensure permissions
echo -e "$FISHAMNIUM_COLOR_PRIMARY--> Fixing file permissions ...$FISHAMNIUM_COLOR_RESET"
command chmod -R a+x "$target" "$loader"; or exit 1
# Remove temporary directory if needed
if ! set -q _flag_l
echo -e "$FISHAMNIUM_COLOR_PRIMARY--> Removing temporary installation files in $FISHAMNIUM_COLOR_RESET$source$FISHAMNIUM_COLOR_PRIMARY ...$FISHAMNIUM_COLOR_RESET"
cd "$origPwd"
command rm -rf "$source"; or exit 1
end
# Print a status
printf "\n$FISHAMNIUM_COLOR_SUCCESS--> To load fish right now without restarting the terminal, run: $FISHAMNIUM_COLOR_RESETsource ~/.config/fish/conf.d/fishamnium.fish$FISHAMNIUM_COLOR_SUCCESS"
printf "\n$FISHAMNIUM_COLOR_SUCCESS--> Fishamnium has been installed. Hope you will like it. Enjoy! \U0001F37A$FISHAMNIUM_COLOR_RESET\n"
else
echo -e "$FISHAMNIUM_COLOR_PRIMARY--> Removing directory $FISHAMNIUM_COLOR_RESET$target$FISHAMNIUM_COLOR_PRIMARY and loader file $FISHAMNIUM_COLOR_RESET$loader$FISHAMNIUM_COLOR_PRIMARY ...$FISHAMNIUM_COLOR_RESET"
command rm -rf "$target" "$loader"; or exit 1
echo -e "$FISHAMNIUM_COLOR_PRIMARY--> Removing loader file $FISHAMNIUM_COLOR_RESET$loader$FISHAMNIUM_COLOR_PRIMARY ...$FISHAMNIUM_COLOR_RESET"
command rm -rf "$loader"; or exit 1
printf "\n$FISHAMNIUM_COLOR_SUCCESS--> Fishamnium has been uninstalled. Hope you liked it. Farewell! \U0001F37A$FISHAMNIUM_COLOR_RESET\n"
end