#!/bin/bash
#
# Instalator programu UPS Monitor 3.1
# programu monitorujacego zasilacze UPS firmy Fideltronik
#
#   autor:      Leszek Tokarski  ltokarski@fideltronik.com

#######################################
#Dolaczenie pliku opcji
. cfg/options.cfg

#######################################
#Upewnienie
echo -n "Instalacja programu UPS Monitor. Kontynuowac? (y/n)"
read wybor
if [ "$wybor" != 'y' -a "$wybor" != 'Y' ]; then
    echo "Instalacja anulowana"
    exit
fi

#######################################
#Sprawdzenie praw administratora
if [ `id -u` -ne 0 ]; then
    echo "Instalujac ten program musisz posiadac prawa administratora"
    exit
fi

#######################################
#Sprawdzenie czy instalacja juz istnieje
if [ -f ${PATH_BINARY}/upsmons -o -f ${PATH_BINARY}/upsmons ]; then
    echo -n "Program jest juz zainstalowany. Upgradowac? (y/n)"
    read wybor
    if [ "$wybor" != 'y' -a "$wybor" != 'Y' ]; then
        echo "Instalacja anulowana"
        exit
    fi
    #sprawdzenie, czy program dziala
    if [ "`ps -A | grep upsmon`" ]; then
        echo "Zatrzymywanie procesow"
        killall -9 upsmonc
        killall -9 upsmons
    fi
fi

#######################################
#Tworzenie katalogow
if [ ! -d "${PATH_CONFIG}" ]; then
    echo "Utworzenie katalogu konfiguracji: ${PATH_CONFIG}"
    mkdir -p ${PATH_CONFIG}
fi
if [ ! -d "${PATH_LOG}" ]; then
    echo "Utworzenie katalogu na logi: ${PATH_LOG}"
    mkdir -p ${PATH_LOG}
fi
PATH_DOC=/usr/share/doc/upsfid-3.1.0
if [ ! -d "${PATH_DOC}" ]; then
    echo "Utworzenie katalogu na dokumentacj: ${PATH_DOC}"
    mkdir -p ${PATH_DOC}
fi
if [ ! -z ${REFRESH_WWW} ]; then
    if [ ! -d "${PATH_WWW}" ]; then
        echo "Utworzenie katalogu na strone www: ${PATH_WWW}"
        mkdir -p ${PATH_WWW}
    fi
    if [ ! -d "${PATH_WWW}/images" ]; then
        mkdir -p ${PATH_WWW}/images
    fi
fi

#######################################
echo "Kopiowanie plikow ..."

cp -u bin/* ${PATH_BINARY}
cp -u upsfid /etc/init.d
cp -u README ${PATH_DOC}/README

# Ponizszy plik niekoniecznie dziala tak samo we wszystkich dystrybucjach
# ma on na celu wlaczenie odbierania komunikatow w X Windows
if [ -d /etc/X11/xinit/xinitrc.d ]; then
    cp -f xhostfid.sh /etc/X11/xinit/xinitrc.d
fi

if [ -f ${PATH_CONFIG}/ups.cfg ]; then
    echo -n "Nadpisac konfiguracje? (y/n)"
    read wybor
    if [ "$wybor" == 'y' -o "$wybor" == 'Y' ]; then
        for f in `ls cfg`; do
            rm -f ${PATH_CONFIG}/${f};
            cp cfg/${f} ${PATH_CONFIG};
        done
    fi
else
    cp cfg/* ${PATH_CONFIG}
fi

if [ ! -z ${REFRESH_WWW} ]; then
    cp -u images/* ${PATH_WWW}/images
fi

#######################################
echo "Nadanie odpowiednich uprawnien dla plikow ..."
chmod 500 ${PATH_BINARY}/upsmons
chmod 500 ${PATH_BINARY}/upsmonc
chmod 500 ${PATH_BINARY}/upsoff
chmod 700 ${PATH_BINARY}/shutdown.sh
chmod 700 ${PATH_BINARY}/xmess
chmod 755 /etc/X11/xinit/xinitrc.d/xhostfid.sh
chmod 700 /etc/init.d/upsfid
chmod 600 ${PATH_CONFIG}/*
chmod 444 ${PATH_WWW}/images/*
chmod 444 ${PATH_DOC}/README

#######################################
echo "Dowiazanie pliku startowego w celu automatycznego uruchamiania"
ln -s /etc/init.d/upsfid /etc/rc3.d/S61upsfid
ln -s /etc/init.d/upsfid /etc/rc5.d/S61upsfid

#######################################
echo "Instalacja zakonczona"
echo
