2024-03-30 18:17:02 +01:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
set -o errexit # crash the script when a command crash
|
|
|
|
set -o pipefail # same as above for piped command
|
|
|
|
set -o nounset # crash when a variable doesnt exist
|
|
|
|
|
|
|
|
# TRACE=1 for debug
|
|
|
|
if [[ "${TRACE-0}" == "1" ]]; then
|
|
|
|
set -o xtrace
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd "$(dirname "$0")" # change script directory
|
|
|
|
|
|
|
|
function main {
|
|
|
|
# === Variables ==
|
2024-03-30 18:25:54 +01:00
|
|
|
local repo apt_arg
|
2024-03-30 18:17:02 +01:00
|
|
|
repo=https://git.mylloon.fr/Anri/confOS/raw/branch/main
|
2024-03-30 18:28:29 +01:00
|
|
|
apt_arg='-y -o Dpkg::Options::="--force-confnew"'
|
2024-03-30 18:17:02 +01:00
|
|
|
|
|
|
|
# === Update ==
|
2024-03-30 18:36:28 +01:00
|
|
|
eval "apt-get update ${apt_arg}"
|
2024-03-30 18:17:02 +01:00
|
|
|
|
|
|
|
|
|
|
|
# === Packages ==
|
2024-03-30 18:36:28 +01:00
|
|
|
eval "apt-get install ${apt_arg} \
|
2024-04-03 09:22:55 +02:00
|
|
|
fish eza tealdeer bat wget topgrade git make micro difftastic zip"
|
2024-03-30 18:17:02 +01:00
|
|
|
|
|
|
|
|
|
|
|
# === Fish ==
|
|
|
|
# Default shell
|
|
|
|
chsh -s fish
|
|
|
|
# Remove motd
|
|
|
|
fish -c "set -U fish_greeting"
|
2024-03-30 18:41:04 +01:00
|
|
|
# Fisher
|
2024-03-30 18:17:02 +01:00
|
|
|
curl -sL https://git.io/fisher | fish -c "source && fisher install jorgebucaran/fisher"
|
2024-03-30 18:41:04 +01:00
|
|
|
# Auto pair
|
2024-03-30 18:17:02 +01:00
|
|
|
fish -c "fisher install jorgebucaran/autopair.fish"
|
|
|
|
# Fish theme
|
|
|
|
fish -c "fish_config theme choose 'Base16 Eighties' && yes | fish_config theme save"
|
|
|
|
fish -c "set fish_color_comment 5c6773" # custom comment color
|
|
|
|
# Fish prompt
|
|
|
|
rm "$HOME"/.config/fish/functions/fish_prompt.fish 2> /dev/null ||:
|
|
|
|
wget -q "${repo}"/.config/fish/functions/fish_prompt.fish -P "$HOME"/.config/fish/functions/
|
|
|
|
# EZA colors
|
|
|
|
fish -c "set -Ux EXA_COLORS 'di=1;36:da=35'"
|
2024-04-03 08:53:34 +02:00
|
|
|
# Add configuration
|
|
|
|
wget -q "${repo}"/.config/fish/config.fish -O "$HOME"/.config/fish/config.fish
|
2024-03-30 18:17:02 +01:00
|
|
|
# Add abbreviations
|
|
|
|
wget -q "${repo}"/.config/fish/conf.d/abbr.fish -O "$HOME"/.config/fish/conf.d/abbr.fish
|
|
|
|
# Add aliases
|
|
|
|
wget -q "${repo}"/.config/fish/conf.d/alias.fish -O "$HOME"/.config/fish/conf.d/alias.fish
|
|
|
|
|
|
|
|
|
|
|
|
# === Default editor ==
|
|
|
|
fish -c "set -Ux EDITOR nano"
|
|
|
|
|
|
|
|
|
|
|
|
# === tldr ==
|
|
|
|
fish -c "tldr --update"
|
|
|
|
# Fish completion
|
|
|
|
local url_tldr
|
|
|
|
url_tldr=$(curl -s https://api.github.com/repos/dbrgn/tealdeer/releases/latest \
|
|
|
|
| grep 'browser_download_url": ".*/completions_fish"' \
|
|
|
|
| cut --delimiter=":" --field=2,3 \
|
|
|
|
| tr -d \" )
|
|
|
|
wget -q --show-progress "${url_tldr:1}" -O completions_fish
|
|
|
|
mv completions_fish ~/.config/fish/completions/tldr.fish
|
|
|
|
|
|
|
|
|
|
|
|
# === Git ==
|
|
|
|
wget -q "${repo}"/dotfiles/.gitconfig -O "$HOME"/.gitconfig
|
2024-04-03 08:40:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
# === Topgrade ==
|
|
|
|
wget -q "${repo}"/.config/topgrade/topgrade.toml -O "$HOME"/.config/topgrade.toml
|
|
|
|
|
|
|
|
|
|
|
|
# === Fix ==
|
|
|
|
# Since Termux isn't used a lot, I don't plan to make it a real distro
|
|
|
|
# supported by thoses scripts, so I give the bare minimum support to it
|
2024-04-03 09:24:34 +02:00
|
|
|
# Fix SSH not configured
|
2024-04-03 08:53:34 +02:00
|
|
|
sed -i "/fish_ssh_agent/d" "$HOME"/.config/fish/config.fish
|
2024-04-03 09:24:34 +02:00
|
|
|
# Fix topgrade abbr
|
2024-04-03 08:40:27 +02:00
|
|
|
sed -i "/topgrade/d" "$HOME"/.config/fish/conf.d/abbr.fish
|
2024-03-30 18:17:02 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
if type termux-info &> /dev/null;
|
|
|
|
then
|
|
|
|
main "$@"
|
|
|
|
else
|
|
|
|
echo "Ce script ne fonctionne que sur Termux." >&2
|
|
|
|
fi
|