#!/bin/bash

# Some colors for a brighter look
RS="\033[0m"
RE="\033[1;31;40m"
GR="\033[1;32;40m"
BR="\033[0;33;40m"
YE="\033[1;33;40m"
WH="\033[1;37;40m"
BLK="\033[1;37;40m"
CLR="\033[2J\033[H"

if [ -f ~/.bashrc ]; then
    # Check if first line contains the incorrect assertion
    if head -1 ~/.bashrc | grep -q "for non-login shells"; then
        sed -e '1s/for non-login shells/for interactive shells/' ~/.bashrc >/tmp/__bash_setup__ && \
            mv -f /tmp/__bash_setup__ ~/.bashrc
    fi
else
    echo "# ~/.bashrc: executed by bash(1) for interactive shells" >~/.bashrc
fi

echo -ne "${BLK}${CLR}"
echo -e "${GR}Do you want to use ${YE}bash${GR} as your default"
echo -e "${GR}login shell?"
echo    ""
echo -e "${BR}Enter ${YE}Y${BR} to change shell to ${YE}bash${BR}, or"
echo -e "${BR}Enter ${YE}N${BR} to leave the current shell setting."

SET_SHELL=
while true; do
    echo -ne "${WH}"
    read -r -p "> " x
    case $x in
        y|Y)
            SET_SHELL=y
            break;;
        n|N)
            break;;
    esac
    echo -e "${RE}Please enter ${YE}Y${RE} or ${YE}N"
done

if [ -n "$SET_SHELL" ]; then
    chsh -s /bin/bash $USER
fi

# Looks like there's a leftover .bashrc in /root,
# which will override any prompt we set
if [ `id -u` == 0 -a -w /root/.bashrc ]; then
    if grep -q '^export PS1='\''\\h:\\w\\\$ '\''$' /root/.bashrc; then
        echo B
        echo -ne "${BLK}${CLR}"
        echo -e "${GR}It seems there is a leftover ~/.bashrc in your home"
        echo -e "${GR}directory. It will override the prompt set by the"
        echo -e "${GR}/etc/profile.d/prompt.sh script. Do you want to comment"
        echo -e "${GR}out the line that sets the prompt in ~/.bashrc?"
        echo    ""
        echo -e "${BR}Enter ${YE}Y${BR} to comment out the line, or"
        echo -e "${BR}Enter ${YE}N${BR} to leave ~/.bashrc intact."

        FIX_BASHRC=
        while true; do
            echo -ne "${WH}"
            read -r -p "> " x
            case $x in
                y|Y)
                    FIX_BASHRC=y
                    break;;
                n|N)
                    break;;
            esac
            echo -e "${RE}Please enter ${YE}Y${RE} or ${YE}N"
        done

        if [ -n "$FIX_BASHRC" ]; then
            sed -e 's/^\(export PS1=.*\)$/# \1/' /root/.bashrc >/tmp/__bash_setup__
            mv -f /tmp/__bash_setup__ /root/.bashrc
        fi
    fi
fi

echo -ne "${RS}${CLR}"
echo "All done. Now re-open the terminal."
