#!/bin/bash
shopt -s extglob

GREEN="\033[01;32m"
RED="\033[01;31m"
WHITE="\033[01;37m"
YELLOW="\033[01;33m"
CYAN="\033[01;36m"
BLUE="\033[01;34m"
MAGENTA="\033[01;35m"

APPS=(python free gawk echo grep bash gconftool-2 tic df uptime)
MODS=(gtk gtk.glade gconf os sys locale gettext)

echo -e "\n${GREEN}BashStyle-NG${YELLOW} v6.8 ${MAGENTA}(rev151)"

echo -e "\n${BLUE}Checking Applications:\n"

for APP in ${APPS[*]} ; do
    which ${APP} &> /dev/null
    if (( $? == 0 )) ; then
        echo -e "${WHITE}Searching for application: ${CYAN}${APP}${MAGENTA} >${GREEN} O.K."
    else
        echo -e "${WHITE}Searching for application: ${CYAN}${APP}${MAGENTA} >${RED} !MISSING!"
        exit 2 &>/dev/null
    fi
done

which bc &> /dev/null
if (( $? == 0 )); then
        echo -e "${WHITE}Searching for application: ${CYAN}bc${MAGENTA} >${GREEN} O.K."
        NOBC=0
else    
        echo -e "${WHITE}Searching for application: ${CYAN}bc${MAGENTA} >${RED} !MISSING!"
        NOBC=1
fi

which apm &> /dev/null
if (( $? == 0 )); then
        echo -e "${WHITE}Searching for application: ${CYAN}apm${MAGENTA} >${GREEN} O.K."
        NOAPM=0
else    
        echo -e "${WHITE}Searching for application: ${CYAN}apm${MAGENTA} >${RED} !MISSING!"
        NOAPM=1
fi

which less &> /dev/null
if (( $? == 0 )); then
        echo -e "${WHITE}Searching for application: ${CYAN}less${MAGENTA} >${GREEN} O.K."
        NOLESS=0
else    
        echo -e "${WHITE}Searching for application: ${CYAN}less${MAGENTA} >${RED} !MISSING!"
        NOLESS=1
fi

echo -e "\n${BLUE}Checking Python Modules:\n"

for MOD in ${MODS[*]} ; do
    python -c "import ${MOD}" &> /dev/null
    if (( $? == 0 )) ; then
        echo -e "${WHITE}Searching for python module: ${CYAN}${MOD}${MAGENTA} >${GREEN} O.K."
    else
        echo -e "${WHITE}Searching for python module: ${CYAN}${MOD}${MAGENTA} >${RED} !MISSING!"
        exit 3 &>/dev/null
    fi
done

python -c "import psyco" &> /dev/null
if (( $? == 0 )) ; then
	echo -e "${WHITE}Searching for python module: ${CYAN}psyco${MAGENTA} >${GREEN} O.K."
	NOPSYCO=0
else
	echo -e "${WHITE}Searching for python module: ${CYAN}psyco${MAGENTA} >${RED} !MISSING!"
	NOPSYCO=1
fi

echo -e "\n${BLUE}Checking Device Nodes:\n"

if [[ -a /dev/random ]]; then
	echo -e "${WHITE}Searching for node: ${CYAN}/dev/random${MAGENTA} >${GREEN} O.K."
	NORANDOM=0
else
	echo -e "${WHITE}Searching for node: ${CYAN}/dev/random${MAGENTA} >${RED} !MISSING!"
	NORANDOM=1
fi

if [[ $NOBC != 0 || $NOPSYCO != 0 || $NORANDOM != 0 || $NOLESS != 0 || $NOAPM != 0 ]]; then
	echo -e "\n${BLUE}Important Informations:\n"
else	echo -e ""
fi

if [[ $NOBC == 1 ]]; then
	echo -e "${YELLOW}The optional ${MAGENTA}'bc'${YELLOW} is missing${MAGENTA} >${YELLOW} some styles won't work properly\n"
fi

if [[ $NOPSYCO == 1 ]]; then
	echo -e "${YELLOW}The optional ${MAGENTA}'psyco'${YELLOW} is missing${MAGENTA} >${YELLOW} it might speed-up bashstyle-ng\n"
fi

if [[ $NORANDOM == 1 ]]; then
	echo -e "${YELLOW}The node ${MAGENTA}/dev/random${YELLOW} is not available${MAGENTA} >${YELLOW} random theme function won't work\n"
fi

if [[ $NOLESS == 1 ]]; then
	echo -e "${YELLOW}The optional ${MAGENTA}'less'${YELLOW} is missing${MAGENTA} >${YELLOW} colored Manpages won't work\n"
fi

if [[ $NOAPM == 1 ]]; then
	echo -e "${YELLOW}The optional ${MAGENTA}'apm'${YELLOW} is missing${MAGENTA} >${YELLOW} the showbatteryload script won't work\n"
fi

cp bashstyle.in bashstyle
cp python-gtk/bashstyle.in python-gtk/bashstyle
cp Makefile.in Makefile
cp bs-ng.desktop.in bs-ng.desktop
cp system/nx-rc.in system/nx-rc

case $1 in
	--prefix=*)
		prefix=$(echo -e $1 | sed -e 's/.*=//g')
		sed -e "s#@PREFIX@#$prefix#g" -i Makefile
		sed -e "s#@PREFIX@#$prefix#g" -i python-gtk/bashstyle
		sed -e "s#@PREFIX@#$prefix#g" -i bashstyle
		sed -e "s#@PREFIX@#$prefix#g" -i bs-ng.desktop
		sed -e "s#@PREFIX@#$prefix#g" -i system/nx-rc
		echo -e "${WHITE}Prefix:${BLUE} $prefix\n"
	;;

	*)
		sed -e 's#@PREFIX@#/usr#g' -i Makefile
		sed -e 's#@PREFIX@#/usr#g' -i python-gtk/bashstyle
		sed -e 's#@PREFIX@#/usr#g' -i bashstyle
		sed -e 's#@PREFIX@#/usr#g' -i bs-ng.desktop
		sed -e "s#@PREFIX@#/usr#g" -i system/nx-rc
		echo -e "${WHITE}Prefix:${BLUE} /usr\n"
	;;
esac

tput sgr0
