ellie-bash-installer/rebuild.sh
2024-06-25 20:46:54 +12:00

56 lines
2 KiB
Bash

#!/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