You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
3.0 KiB
Bash
126 lines
3.0 KiB
Bash
#!/bin/bash
|
|
|
|
# $0 script path
|
|
# $1 action
|
|
# $2 subaction
|
|
|
|
node="$(which nodejs 2>/dev/null)";
|
|
if [ $? -gt 0 ];
|
|
then node="$(which node)";
|
|
fi
|
|
|
|
function pidExists() {
|
|
if [ -e "pidfile" ];
|
|
then
|
|
kill -s 0 $(cat pidfile);
|
|
if [ !$? ];
|
|
then return 1;
|
|
else return 0;
|
|
fi
|
|
else
|
|
return 0;
|
|
fi
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
echo "Starting NodeBB";
|
|
echo " \"./nodebb stop\" to stop the NodeBB server";
|
|
echo " \"./nodebb log\" to view server output";
|
|
|
|
# Start the loader daemon
|
|
"$node" loader -d "$@"
|
|
;;
|
|
|
|
stop)
|
|
pidExists;
|
|
if [ 0 -eq $? ];
|
|
then
|
|
echo "NodeBB is already stopped.";
|
|
else
|
|
echo "Stopping NodeBB. Goodbye!";
|
|
kill $(cat pidfile);
|
|
fi
|
|
;;
|
|
|
|
reload|restart)
|
|
pidExists;
|
|
if [ 0 -eq $? ];
|
|
then
|
|
echo "NodeBB could not be restarted, as a running instance could not be found.";
|
|
else
|
|
echo "Restarting NodeBB.";
|
|
kill -1 $(cat pidfile);
|
|
fi
|
|
;;
|
|
|
|
status)
|
|
pidExists;
|
|
if [ 0 -eq $? ];
|
|
then
|
|
echo "NodeBB is not running";
|
|
echo " \"./nodebb start\" to launch the NodeBB server";
|
|
else
|
|
echo "NodeBB Running (pid $(cat pidfile))";
|
|
echo " \"./nodebb stop\" to stop the NodeBB server";
|
|
echo " \"./nodebb log\" to view server output";
|
|
echo " \"./nodebb restart\" to restart NodeBB";
|
|
fi
|
|
;;
|
|
|
|
log)
|
|
clear;
|
|
tail -F ./logs/output.log;
|
|
;;
|
|
|
|
upgrade)
|
|
npm install
|
|
# ls -d node_modules/nodebb* | xargs -n1 basename | xargs npm install
|
|
# ls -d node_modules/nodebb* | xargs -n1 basename | xargs npm update
|
|
npm i nodebb-theme-vanilla nodebb-theme-lavender nodebb-widget-essentials
|
|
"$node" app --upgrade
|
|
touch package.json
|
|
echo -e "\n\e[00;32mNodeBB Dependencies up-to-date!\e[00;00m";
|
|
;;
|
|
|
|
setup)
|
|
"$node" app --setup "$@"
|
|
;;
|
|
|
|
reset)
|
|
"$node" app --reset --$2
|
|
;;
|
|
|
|
dev)
|
|
echo "Launching NodeBB in \"development\" mode."
|
|
echo "To run the production build of NodeBB, please use \"forever\"."
|
|
echo "More Information: https://docs.nodebb.org/en/latest/running/index.html"
|
|
NODE_ENV=development "$node" loader --no-daemon "$@"
|
|
;;
|
|
|
|
watch)
|
|
echo "Launching NodeBB in \"development\" mode."
|
|
echo "To run the production build of NodeBB, please use \"forever\"."
|
|
echo "More Information: https://docs.nodebb.org/en/latest/running/index.html"
|
|
NODE_ENV=development supervisor -q --ignore public/templates,public/nodebb.min.js,public/nodebb.min.js.map --extensions 'node|js|tpl|less' -- app "$@"
|
|
;;
|
|
|
|
*)
|
|
echo "Welcome to NodeBB"
|
|
echo $"Usage: $0 {start|stop|reload|restart|log|setup|reset|upgrade|dev|watch}"
|
|
echo ''
|
|
column -s ' ' -t <<< '
|
|
start Start the NodeBB server
|
|
stop Stops the NodeBB server
|
|
reload Restarts NodeBB
|
|
restart Restarts NodeBB
|
|
log Opens the logging interface (useful for debugging)
|
|
setup Runs the NodeBB setup script
|
|
reset Disables all plugins, restores the default theme.
|
|
upgrade Run NodeBB upgrade scripts, ensure packages are up-to-date
|
|
dev Start NodeBB in interactive development mode
|
|
watch Start NodeBB in development mode and watch for changes
|
|
'
|
|
exit 1
|
|
esac
|