diff --git a/rebuild.sh b/rebuild.sh index 96b4b06..885e2ac 100644 --- a/rebuild.sh +++ b/rebuild.sh @@ -1 +1,56 @@ -#!/bin/sh \ No newline at end of file +#!/bin/sh + +# Legend: +# (A) - Database related operations +# (B) - Aliases related operations +# (C) - Strings related operations + +root=$(pwd) + +cd elliebot + +# build +export DOTNET_CLI_TELEMETRY_OPTOUT=1 +dotnet restore -f --no-cache +dotnet build src/EllieBot/EllieBot.csproj -c Release -o output/ + +# go back +cd "$root" + +# move creds from old to new +mv -f elliebot_old/output/creds.yml elliebot/output/creds.yml 1>/dev/null 2>&1 +# also copy credentials.json for migration purposes +mv -f elliebot_old/output/credentials.json elliebot/output/credentials.json 1>/dev/null 2>&1 + +# on update, strings will be new version, user will have to manually re-add his strings after each update +# as updates may cause big number of strings to become obsolete, changed, etc +# however, old user's strings will be backed up to strings_old + +# (C) backup new strings to reverse rewrite +rm -rf elliebot/output/data/strings_new 1>/dev/null 2>&1 +mv -fT elliebot/output/data/strings elliebot/output/data/strings_new 1>/dev/null 2>&1 +# (C) delete old strings backup +rm -rf elliebot_old/output/data/strings_old 1>/dev/null 2>&1 +rm -rf elliebot_old/output/data/strings_new 1>/dev/null 2>&1 + +# (B) backup new aliases to reverse rewrite +mv -f elliebot/output/data/aliases.yml elliebot/output/data/aliases_new.yml 1>/dev/null 2>&1 + +# (A) move old database +mv -f elliebot_old/output/data/EllieBot.db elliebot/output/data/EllieBot.db 1>/dev/null 2>&1 + +# move old data folder contents (and overwrite) +cp -RT elliebot_old/output/data/ elliebot/output/data 1>/dev/null 2>&1 + +# (B) backup old aliases +mv -f elliebot/output/data/aliases.yml elliebot/output/data/aliases_old.yml 1>/dev/null 2>&1 +# (B) restore new aliases +mv -f elliebot/output/data/aliases_new.yml elliebot/output/data/aliases.yml 1>/dev/null 2>&1 + +# (C) backup old strings +mv -f elliebot/output/data/strings elliebot/output/data/strings_old 1>/dev/null 2>&1 +# (C) restore new strings +mv -f elliebot/output/data/strings_new elliebot/output/data/strings 1>/dev/null 2>&1 + +rm "$root/rebuild.sh" +exit 0