53 lines
1.2 KiB
Bash
53 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
FISH_CONFIG_DIR="${HOME}/.config/fish"
|
|
FISH_FUNCTIONS_DIR="${FISH_CONFIG_DIR}/functions"
|
|
FISH_CONFIG_FILE="${FISH_CONFIG_DIR}/config.fish"
|
|
FISH_PROMPT_FILE="${FISH_FUNCTIONS_DIR}/fish_prompt.fish"
|
|
|
|
|
|
if ! command -v dnf >/dev/null 2>&1; then
|
|
echo "This script is for Fedora systems with dnf."
|
|
exit 1
|
|
fi
|
|
|
|
|
|
sudo dnf install -y htop tree git fish
|
|
|
|
if ! sudo dnf install -y uv; then
|
|
echo "uv package is not available in the currently enabled Fedora repositories."
|
|
fi
|
|
|
|
mkdir -p "${FISH_FUNCTIONS_DIR}"
|
|
touch "${FISH_CONFIG_FILE}"
|
|
|
|
if ! grep -qxF 'set -g fish_greeting' "${FISH_CONFIG_FILE}"; then
|
|
printf '\nset -g fish_greeting\n' >> "${FISH_CONFIG_FILE}"
|
|
fi
|
|
|
|
cat > "${FISH_PROMPT_FILE}" <<'EOF'
|
|
function fish_prompt
|
|
set -l last_status $status
|
|
|
|
set_color brblue
|
|
printf '%s' (prompt_pwd)
|
|
set_color normal
|
|
|
|
if test $last_status -ne 0
|
|
printf ' '
|
|
set_color red
|
|
printf '[%s]' $last_status
|
|
set_color normal
|
|
end
|
|
|
|
printf '\n'
|
|
set_color brcyan
|
|
printf '> '
|
|
set_color normal
|
|
end
|
|
EOF
|
|
|
|
echo "Installed: htop tree git fish"
|
|
echo "Fish prompt configured. Start it with: fish"
|