#!/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 } function setupJson() { if [ ! -f "$1" ]; then echo "Setting up ${1}" echo '{}' >"$1" 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}" } log 'Making project' 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 setupJson stats/stats setupJson stats/vstats setupJson stats/idstats setupJson stats/idvstats setupJson publicDirs/qminingPublic/userSpecificMotd.json setupJson publicDirs/qminingPublic/news.json touch publicDirs/qminingPublic/version touch publicDirs/qminingPublic/motd if [ -z "$(ls -A ./src/standaloneUtils)" ]; then pushd src/standaloneUtils NS_LOGLEVEL=2 node dbSetup.js mv *db ../../data/dbs popd fi hr echo "Done!" echo "npm start {loglevel}" echo "To start server" hr