#!/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