mrfrys-node-server/scripts/make.sh
2021-06-22 10:05:19 +02:00

85 lines
1.9 KiB
Bash

#!/bin/bash
hr() {
printf '\033[0;32m%*s\033[0m\n' "$(tput cols)" '' | tr ' ' '='
}
log() {
hr
echo -e "\033[0;32m${@}\033[0m"
hr
}
checkFile() {
if [ ! -f "$@" ]; then
log "$@ does not exists, exiting"
exit
fi
}
makeNextSubmodule() {
log "Making ${1}"
pushd "submodules/${1}/"
npm install
npm audit fix
npm run export
popd
ln -sf "$PWD/submodules/${1}/out" "$PWD/nextStatic/${2}"
}
checkFile "$PWD/src/server.ts"
checkFile "$PWD/package.json"
git pull
git submodule update --init --recursive
log "Installing node modules for server"
npm install
npm audit fix
npm run export
log "Seting up next.js static stuff..."
mkdir "$PWD/nextStatic"
# ------------------------------------------------------------------------------------
makeNextSubmodule "qmining-page" "qminingPagePublic"
makeNextSubmodule "qmining-data-editor" "dataEditorPublic"
# ------------------------------------------------------------------------------------
log "Making moodle test userscript"
mkdir -pv "$PWD/publicDirs/qminingPublic/moodle-test-userscript"
checkFile "$PWD/submodules/moodle-test-userscript/stable.user.js"
ln -sfv "$PWD/submodules/moodle-test-userscript/stable.user.js" "$PWD/publicDirs/qminingPublic/moodle-test-userscript/"
ln -sfv "$PWD/submodules/moodle-test-userscript/stable.user.js" "$PWD/publicDirs/qminingPublic"
log "mkdir-ing/touching :3"
# TODO: make server create these itself
mkdir -p stats
mkdir -p stats/logs
mkdir -p stats/vlogs
mkdir -p data
mkdir -p data/dbs
touch data/nolog
#JSONS
echo '{}' >stats/stats
echo '{}' >stats/vstats
echo '{}' >stats/idstats
echo '{}' >stats/idvstats
echo '{}' >publicDirs/qminingPublic/userSpecificMotd.json
echo '{}' >publicDirs/qminingPublic/news.json
touch publicDirs/qminingPublic/version
touch publicDirs/qminingPublic/motd
pushd src/standaloneUtils
NS_LOGLEVEL=2 node dbSetup.js
mv *db ../../data/dbs
popd
hr
echo "Done!"
echo "npm start {loglevel}"
echo "To start server"
hr