diff --git a/scripts/setup.sh b/scripts/setup.sh index 6672182..cd83d61 100755 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -1,45 +1,37 @@ #!/bin/bash -hr() { - if [ -t 0 ]; then - printf '\033[0;32m%*s\033[0m\n' "$(tput cols)" '' | tr ' ' '=' - fi -} +baseDir=$(pwd) -log() { - hr - echo -e "\033[0;34m${@}\033[0m" - hr -} +hr() { [ -t 0 ] && printf '\033[0;32m%*s\033[0m\n' "$(tput cols)" '' | tr ' ' '='; } + +log() { hr; echo -e "\033[0;34m${*@}\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 + if [ ! -f "${*@}" ]; then + log "${*@} does not exists, exiting" + exit + fi } makeNextSubmodule() { - log "Making ${1}" - pushd "submodules/${1}/" || exit - npm install - npm audit fix > /dev/null 2> /dev/null - npm run export - popd || exit - # TODO: check if link exists - linkTarget="$PWD/nextStatic/${2}" - if [ ! -f "${linkTarget}" ]; then - ln -sf "$PWD/submodules/${1}/out" "${linkTarget}" - fi + log "Making ${1}" + cd "submodules/${1}/" || exit + npm install + npm audit fix > /dev/null 2> /dev/null + checkFile "make.sh" + ./make.sh + npx --yes next telemetry disable + cd "${baseDir}" || exit + # TODO: check if link exists + linkTarget="$PWD/nextStatic/${2}" + if [ ! -f "${linkTarget}" ]; then + ln -sf "$PWD/submodules/${1}/out" "${linkTarget}" + fi } +# ------------------------------------------------------------------------------------ +# Git submodules +# ------------------------------------------------------------------------------------ log 'Updating / Cloning project' checkFile "$PWD/src/server.ts" @@ -49,52 +41,55 @@ checkFile "$PWD/package-lock.json" git pull || exit git submodule update --init --recursive || exit - -log "Making project" -npm install -npm audit fix > /dev/null 2> /dev/null -npm run export - -mkdir "$PWD/nextStatic" - # ------------------------------------------------------------------------------------ -makeNextSubmodule "qmining-page" "qminingPagePublic" -makeNextSubmodule "qmining-data-editor" "dataEditorPublic" +# Creating directory structure # ------------------------------------------------------------------------------------ - -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" - +log "mkdir-ing" # TODO: make server create these itself mkdir -pv stats mkdir -pv stats/logs mkdir -pv stats/vlogs mkdir -pv data mkdir -pv data/dbs -touch data/nolog - -#JSONS -setupJson stats/stats -setupJson stats/vstats -setupJson stats/idstats -setupJson stats/idvstats +mkdir -p publicDirs/qminingPublic touch publicDirs/qminingPublic/motd +# ------------------------------------------------------------------------------------ +# DB-s +# ------------------------------------------------------------------------------------ +log "Making project" +npm install +npm audit fix > /dev/null 2> /dev/null +npm run export + +# ------------------------------------------------------------------------------------ +# Next js submodules +# ------------------------------------------------------------------------------------ +mkdir "$PWD/nextStatic" +makeNextSubmodule "qmining-page" "qminingPagePublic" +makeNextSubmodule "qmining-data-editor" "dataEditorPublic" + +# ------------------------------------------------------------------------------------ +# Moodle test userscript +# ------------------------------------------------------------------------------------ +log "Making moodle test userscript" +checkFile "$PWD/submodules/moodle-test-userscript/stable.user.js" +mkdir -pv "$PWD/publicDirs/qminingPublic/moodle-test-userscript" +ln -sfv "$PWD/submodules/moodle-test-userscript/stable.user.js" "$PWD/publicDirs/qminingPublic/moodle-test-userscript/" + +# ------------------------------------------------------------------------------------ +# DB-s +# ------------------------------------------------------------------------------------ if [ -z "$(ls -A ./data/dbs)" ]; then - log "Making DB-s" - pushd src/standaloneUtils || exit - NS_SQL_DEBUG_LOG=1 NS_LOGLEVEL=2 node dbSetup.js - mv ./*.db ../../data/dbs - popd || exit + log "Making DB-s" + cd src/standaloneUtils || exit + NS_SQL_DEBUG_LOG=1 NS_LOGLEVEL=2 node dbSetup.js + mv ./*.db ../../data/dbs + cd "${baseDir}" || exit +else + log "Dbs already exist, skipping" fi -log "Disabling next telemetry" -npx --yes next telemetry disable - +# ------------------------------------------------------------------------------------ log "Done! development mode: 'npm run dev', prod mode: 'npm run start', tests: 'npm run test'"