96 lines
1.9 KiB
Bash
Executable File
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
|