summaryrefslogtreecommitdiff
path: root/tools/unarchive.sh
blob: 6adb3003c00c1d474d9175671a69b11e21d8f90a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
# Restore purged game state from archive.

if [ -z "$1" ]
then
        echo 'usage: bash tools/unarchive.sh <gameid>'
        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