32 lines
1.2 KiB
Bash
32 lines
1.2 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
validate_port() {
|
||
|
|
if [ -z "$1" ] || ([ -n "$1" ] && ((echo $1 | egrep -q '^[0-9]+$' && ([ $1 -lt 1 ] || [ $1 -gt 65535 ])) || ! test "$1" -gt 0 2> /dev/null)); then
|
||
|
|
echo "err"
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
# Check if the settings.json file exists
|
||
|
|
if [ -f ./settings.json ]; then
|
||
|
|
# Read the webserver.port value from settings.json file
|
||
|
|
readonly SERVER_PORT="$(./node_modules/.bin/strip-json-comments settings.json | ./node_modules/.bin/json -q webserver.port)"
|
||
|
|
# Check if the webserver.port value is a valid port #
|
||
|
|
if [ -z "$(validate_port $SERVER_PORT)" ]; then
|
||
|
|
# Check if the server is currently running
|
||
|
|
if [ -n "$(lsof -t -i:${SERVER_PORT} 2> /dev/null)" ]; then
|
||
|
|
# Send a SIGINT kill signal to the process that is currently using the explorer's server port
|
||
|
|
kill -2 $(lsof -t -i:${SERVER_PORT})
|
||
|
|
# Show shutdown msg
|
||
|
|
echo "Explorer shutting down... Please wait..."
|
||
|
|
else
|
||
|
|
# Webserver is not running
|
||
|
|
echo "Error: Cannot stop explorer because it is not currently running"
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
# Invalid port number
|
||
|
|
echo "Error: webserver.port value not found in settings.json. webserver.port value is missing or file is not valid json."
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
# Missing settings file
|
||
|
|
echo "Error: Cannot find settings.json"
|
||
|
|
fi
|