#!/usr/bin/env bash

. /usr/share/dosis2/bin/shell-support-functions

OS="`getos`"

get_web_service() {
    if [ "${OS}" = "Ubuntu" ]; then
        echo "apache2"
    elif [ "${OS}" = "CentOS" ]; then
        echo "httpd"
    else
        abort 2 "Unsupported OS: ${OS}"
    fi
}

# Force ask for removal/replace commands
alias rm='rm -i'
alias mv='mv -i'

# Misc Aliases
alias ll='ls -l'
alias la='ls -a'
alias sl='ls'

# Dosis Commands
alias dosis_boot='stop_all && sudo reboot'
alias dosis_force_boot='(stop_all || true) && sudo reboot'
alias dosis_off='stop_all && sudo poweroff'
alias dosis_force_off='(stop_all || true) && sudo poweroff'
alias dosis_run='/opt/dosis2/bin/sendAlert start'
alias dosis_restart='/opt/dosis2/bin/sendAlert restart'
alias dosis_pause='/opt/dosis2/bin/sendAlert pause'
alias dosis_stop='/opt/dosis2/bin/sendAlert stop'

# Dosis L60 Service
alias start_l60='sudo /opt/dosis2/bin/os-support-service start dosis_l60'
alias stop_l60='sudo /opt/dosis2/bin/os-support-service stop dosis_l60'
alias restart_l60='sudo /opt/dosis2/bin/os-support-service restart dosis_l60'
alias stat_l60='sudo /opt/dosis2/bin/os-support-service status dosis_l60'

# Dosis PMIS Service
alias start_pmis='sudo /opt/dosis2/bin/os-support-service start dosis_pmis'
alias stop_pmis='sudo /opt/dosis2/bin/os-support-service stop dosis_pmis'
alias restart_pmis='sudo /opt/dosis2/bin/os-support-service restart dosis_pmis'
alias stat_pmis='sudo /opt/dosis2/bin/os-support-service status dosis_pmis'

# Dosis PMIS Sync Service
alias start_pmis_sync='sudo /opt/dosis2/bin/os-support-service start dosis_pmis_sync'
alias stop_pmis_sync='sudo /opt/dosis2/bin/os-support-service stop dosis_pmis_sync'
alias restart_pmis_sync='sudo /opt/dosis2/bin/os-support-service restart dosis_pmis_sync'
alias stat_pmis_sync='sudo /opt/dosis2/bin/os-support-service status dosis_pmis_sync'

# Dosis EXT Print Service
alias start_print='sudo /opt/dosis2/bin/os-support-service start dosis_extprint'
alias stop_print='sudo /opt/dosis2/bin/os-support-service stop dosis_extprint'
alias restart_print='sudo /opt/dosis2/bin/os-support-service restart dosis_extprint'
alias stat_print='sudo /opt/dosis2/bin/os-support-service status dosis_extprint'

# Web Service
alias start_web="sudo /opt/dosis2/bin/os-support-service start `get_web_service`"
alias stop_web="sudo /opt/dosis2/bin/os-support-service stop `get_web_service`"
alias restart_web="sudo /opt/dosis2/bin/os-support-service restart `get_web_service`"
alias stat_web="sudo /opt/dosis2/bin/os-support-service status `get_web_service`"

# Dosis DB Monitor Service
alias start_dbmonitor='sudo /opt/dosis2/bin/os-support-service start dosis_dbmonitor'
alias stop_dbmonitor='sudo /opt/dosis2/bin/os-support-service stop dosis_dbmonitor'
alias restart_dbmonitor='sudo /opt/dosis2/bin/os-support-service restart dosis_dbmonitor'
alias stat_dbmonitor='sudo /opt/dosis2/bin/os-support-service status dosis_dbmonitor'

# CUPS Service
alias start_cups='sudo /opt/dosis2/bin/os-support-service start cups'
alias stop_cups='sudo /opt/dosis2/bin/os-support-service stop cups'
alias restart_cups='sudo /opt/dosis2/bin/os-support-service restart cups'
alias stat_cups='sudo /opt/dosis2/bin/os-support-service status cups'

# Memcached Service
alias start_memcached='sudo /opt/dosis2/bin/os-support-service start memcached'
alias stop_memcached='sudo /opt/dosis2/bin/os-support-service stop memcached'
alias restart_memcached='sudo /opt/dosis2/bin/os-support-service restart memcached'
alias stat_memcached='sudo /opt/dosis2/bin/os-support-service status memcached'

# NTP Service
alias start_ntpd='sudo /opt/dosis2/bin/os-support-service start ntpd'
alias stop_ntpd='sudo /opt/dosis2/bin/os-support-service stop ntpd'
alias restart_ntpd='sudo /opt/dosis2/bin/os-support-service restart ntpd'
alias stat_ntpd='sudo /opt/dosis2/bin/os-support-service status ntpd'

# alerter Service
alias start_alerter='sudo /opt/dosis2/bin/os-support-service start dosis-alerter'
alias stop_alerter='sudo /opt/dosis2/bin/os-support-service stop dosis-alerter'
alias restart_alerter='sudo /opt/dosis2/bin/os-support-service restart dosis-alerter'
alias stat_alerter='sudo /opt/dosis2/bin/os-support-service status dosis-alerter'

# cache Service
alias start_cache='sudo /opt/dosis2/bin/os-support-service start dosis-cache-updater'
alias stop_cache='sudo /opt/dosis2/bin/os-support-service stop dosis-cache-updater'
alias restart_cache='sudo /opt/dosis2/bin/os-support-service restart dosis-cache-updater'
alias stat_cache='sudo /opt/dosis2/bin/os-support-service status dosis-cache-updater'

# Stop all Dosis related Services
stop_all () {
    stop_l60
    stop_pmis
    stop_print
    stop_web
    stop_dbmonitor
    stop_pmis_sync
    stop_alerter
    stop_cache
}

# Get the status of all Dosis related services
stat_all () {
    stat_l60
    stat_pmis
    stat_print
    stat_web
    stat_dbmonitor
    stat_pmis_sync
    stat_alerter
    stat_cache
}

# Add /opt/dosis2/var/lib/python to python path
export PYTHONPATH="/opt/dosis2/var/lib/python:${PYTHONPATH}"

# Add /opt/dosis2/bin to PATH
export PATH="/opt/dosis2/bin:${PATH}"

# TODO: Add support for manufacturing Cycle Test (Maybe make a package for cycle test that is managed)
#alias test_l60='stop_all && wget -N http://catla/~mfg_user/20-l60-test.bash && chmod a+x 20-l60-test.bash && ./20-l60-test.bash'


# TODO: Do I need to export Java stuff???
#export ANT_HOME=/usr/local/ant
#export JAVA_HOME=/usr/lib/jvm/java
#export PATH=${PATH}:${ANT_HOME}/bin
#export PYTHONPATH=/usr/local/opencv/2.4.5/lib64/python2.7
export HISTTIMEFORMAT='[%F %T] '
