#!/usr/bin/env miaou-bash # CONSTANTS readonly AZERTY_ZONES=( 'Europe/Paris' 'Indian/Reunion' 'Indian/Mayotte' 'America/Cayenne' 'America/Guadeloupe' 'America/Martinique' 'Pacific/Noumea' 'Pacific/Tahiti' ) readonly REQUIRED_PKGS=(file jq vim git) readonly BACKUP='ORIGINAL' # FUNCTIONS function required_packages { "$MIAOU_BASH_DIR/tools/idem_apt_install" "${REQUIRED_PKGS[@]}" } function no_more_skeleton { if [[ -e /etc/skel/.bashrc ]]; then rm /etc/skel/.bashrc echo "skeleton .bashrc removed!" fi } function link_etc { local filename="$1" subfolder="${2:-}" local link_name="$filename" [[ -v LINK_NAME ]] && link_name="$LINK_NAME" local source="$MIAOU_BASH_DIR/etc" local destination="/etc" [[ -n "$subfolder" ]] && source+="/${subfolder}" && destination+="/${subfolder}" if [[ -L "$destination/$link_name" ]]; then if [[ "$(readlink "$destination/$link_name")" != "$source/$filename" ]]; then ln -sf "$source/$filename" "$destination/$link_name" echo "link $source/$link_name updated" fi else if [[ -f "$destination/$link_name" ]]; then mv "$destination/$link_name" "$destination/$link_name.$BACKUP" echo "$destination/$link_name.$BACKUP saved!" fi ln -s "$source/$filename" "$destination/$link_name" echo "link $source/$link_name created" fi } function link_config_files { link_etc bash.bashrc link_etc inputrc [[ "$DISTRO_LIKE" == 'arch' ]] && mkdir -p /etc/vim link_etc vimrc.core vim link_etc vimrc.miaou vim link_etc vimrc.rookie vim if in_azerty_zone 2>/dev/null; then link_etc vimrc.azerty vim LINK_NAME=vimrc.local link_etc vimrc.local.azerty vim else link_etc vimrc.local vim fi } function in_azerty_zone { local zone zone=$(readlink /etc/localtime) zone="${zone#/usr/share/zoneinfo/}" # remove prefix for i in "${AZERTY_ZONES[@]}"; do [[ "$zone" == "$i" ]] && return 0; done return 1 } # MAIN [ "$UID" -ne 0 ] && echo 'root privilege required' && exit 1 source "$MIAOU_BASH_DIR/lib/functions.bash" DISTRO_LIKE=$(fetch_distro_like) required_packages no_more_skeleton link_config_files