jitty-scripts/crystald.sh

96 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
BINPATH="/usr/bin"
BINARY="crystal"
#RUNFILE=""
FILEOPTS="play"
LIBNOTIFY="true"
LOGDIR="/tmp"
# Colors
RED='\033[0;31m'
LRED="\033[1;31m"
BLUE="\033[0;34m"
LBLUE="\033[1;34m"
GREEN="\033[0;32m"
LGREEN="\033[1;32m"
YELLOW="\033[1;33m"
CYAN="\033[0;36m"
LCYAN="\033[1;36m"
PURPLE="\033[0;35m"
LPURPLE="\033[1;35m"
BWHITE="\e[1m"
NC='\033[0m' # No Color
#####################################
CheckNotify()
{
if [ "${LIBNOTIFY}" = "true" ];then
notify-send "$1"
elif [ "${LIBNOTIFY}" = "false" ];then
"$1" &> /dev/null
echo "$(date +"%T"): [INFO]: libnotify support disabled" >> ${LOGDIR}/${LOGFILE}
else
echo "[ATTENTION]: Please check the logs: /tmp/${BINARY}.log"
echo "$(date +"%T"): [WARNING]: LIBNOTIFY setting is invalid" >> ${LOGDIR}/${LOGFILE}
fi
}
case "$1" in
start) nohup ${BINPATH}/${BINARY} ${FILEOPTS} &> /dev/null &
sleep 1
PID=$(pidof ${BINARY})
if [ "${PID}" ];then
CheckNotify "${BINARY} started on PID: ${PID}"
echo
printf "${LGREEN}${BINARY} started on PID: ${PID}${NC}\n"
printf "${LGREEN}Web Server started on localhost:8080${NC}\n"
else
CheckNotify "${BINARY} Failed to start!"
printf "${LRED}${BINARY} process failed to start!${NC}\n"
fi
;;
stop) killall ${BINARY}
sleep 1
if [ ! "${PID}" ];then
CheckNotify "${BINARY} was terminated"
echo
printf "${LRED}${BINARY} was terminated${NC}\n"
else
CheckNotify "There was a problem terminating ${BINARY}"
printf "${LRED}There was a problem terminating ${BINARY}${NC}"
fi
;;
open) xdg-open "http://localhost:8080" &> /dev/null
;;
status) ps -fC ${BINARY}
;;
*)
echo """
Usage: crystald [option]
[Options] [Description]
start Starts crystal play on port 8080
stop Kills process 'crystal'
open Opens web browser to localhost:8080
status Shows process status
"""
esac