#!/bin/bash hr() { if [ -t 0 ]; then printf '\033[0;32m%*s\033[0m\n' "$(tput cols)" '' | tr ' ' '=' fi } 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}/" || exit npm install npm audit fix > /dev/null 2> /dev/null npm run export popd || exit linkTarget="$PWD/nextStatic/${2}" if [ ! -f "${linkTarget}" ]; then ln -sf "$PWD/submodules/${1}/out" "${linkTarget}" fi } log 'Updating / Cloning project' checkFile "$PWD/src/server.ts" checkFile "$PWD/package.json" checkFile "$PWD/package-lock.json" git pull git submodule update --init --recursive log "Making project" npm install npm audit fix > /dev/null 2> /dev/null 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 ./data/dbs)" ]; then log "Making DB-s" pushd src/standaloneUtils || exit NS_LOGLEVEL=2 node dbSetup.js mv ./*.db ../../data/dbs popd || exit fi log "Disabling next telemetry" npx --yes next telemetry disable log "Done!"