From 38bd46ce38f2b44bcebc329343a5ab479c8b7e84 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Sun, 24 Mar 2024 18:42:29 +0100 Subject: Add tool to restore archived game state. --- tools/unarchive.sh | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tools/unarchive.sh (limited to 'tools') diff --git a/tools/unarchive.sh b/tools/unarchive.sh new file mode 100644 index 0000000..6adb300 --- /dev/null +++ b/tools/unarchive.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# Restore purged game state from archive. + +if [ -z "$1" ] +then + echo 'usage: bash tools/unarchive.sh ' + exit 1 +fi + +sqlite3 db << EOF + +attach database 'archive.db' as archive; + +begin; + +select 'RESTORE ' || $1 || ' FROM ARCHIVE'; + +.mode table +select * from archive.games where game_id = $1; + +insert or replace into game_state (game_id, state) + select game_id, state + from archive.game_state where game_id = $1; + +insert or replace into game_replay (game_id, replay_id, role, action, arguments) + select game_id, replay_id, role, action, arguments + from archive.game_replay where game_id = $1; + +insert or replace into game_chat (game_id, chat_id, user_id, time, message) + select game_id, chat_id, user_id, time, message + from archive.game_chat where game_id = $1; + +commit; + +EOF -- cgit v1.2.3