#!/bin/bash

checkFile() {
  if [ ! -f "$@" ]; then
    echo "$@ does not exists, exiting"
    exit
  fi
}

checkFile "$PWD/src/server.js"
checkFile "$PWD/package.json"

git pull
git submodule update --init --recursive

echo "Installing node modules for server"
npm install

echo "Seting up next.js static stuff..."
mkdir "$PWD/nextStatic"

echo "Making qmining page"
pushd submodules/qmining-page/
npm install
npm run export
popd
checkFile "$PWD/submodules/qmining-page/out"
ln -sf "$PWD/submodules/qmining-page/out" "$PWD/nextStatic/qminingPagePublic"

echo "Making data editor page"
pushd submodules/qmining-data-editor/
npm install
npm run export
popd
checkFile "$PWD/submodules/qmining-data-editor/out"
ln -sf "$PWD/submodules/qmining-data-editor/out" "$PWD/nextStatic/dataEditorPublic"

echo "Making moodle test userscript"
mkdir -p "$PWD/publicDirs/qminingPublic/moodle-test-userscript"
checkFile "$PWD/submodules/moodle-test-userscript/stable.user.js"
ln -sf "$PWD/submodules/moodle-test-userscript/stable.user.js" "$PWD/publicDirs/qminingPublic/moodle-test-userscript/"
ln -sf "$PWD/submodules/moodle-test-userscript/stable.user.js" "$PWD/publicDirs/qminingPublic"

echo "mkdir-ing/touching :3"

# TODO: make server create these itself
mkdir -p stats
mkdir -p stats/logs
mkdir -p stats/vlogs
touch nolog

#JSONS
echo '{}' >stats/stats
echo '{}' >stats/vstats
echo '{}' >stats/idstats
echo '{}' >stats/idvstats
echo '{}' >qminingPublic/userSpecificMotd.json
echo '{}' >qminingPublic/news.json

touch qminingPublic/version
touch qminingPublic/motd

echo "wgetting data.json from frylabs..."
wget "http://qmining.frylabs.net/data.json" -O ./qminingPublic/data.json

if [ "$?" -ne "0" ]; then
  echo "Failed to wget data.json, please create it yourself!"
  echo "Now starting with empty data!"
  echo '{"Subjects":[],"version":"TESET","motd":"hai"}' >./qminingPublic/data.json
fi

pushd utils
rm -v ../data/dbs/users.db
NS_SQL_DEBUG_LOG=true NS_LOGLEVEL=2 node dbSetup.js
popd

echo "Done!"
echo "npm start {loglevel}"
echo "To start server"