about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops/lomiri/services/history-service/update_schema.sh.in
blob: 3911c59ebe3ad3f30ebb3f687b96cf8999805b41 (plain) (blame)
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
#!/bin/sh

if [ $# -lt 3 ]; then
    echo "Usage: $0 <source directory> <target file> <version info file>"
    exit 1
fi

SOURCE_DIR=$1
TARGET_FILE=$2
VERSION_FILE=$3

VERSION="1"
LATEST_VERSION="1"
MERGED_COMMANDS="merged.sql"

[ -e $MERGED_COMMANDS ] && rm $MERGED_COMMANDS
SCHEMA_FILE="$SOURCE_DIR/v${VERSION}.sql"
while [ -e $SCHEMA_FILE ]; do
    cat $SCHEMA_FILE >> $MERGED_COMMANDS
    LATEST_VERSION=$VERSION
    VERSION=$(($VERSION+1))
    SCHEMA_FILE="$SOURCE_DIR/v${VERSION}.sql"
done

# To output the schema
echo ".fullschema" >> $MERGED_COMMANDS

# The schemas may use functions that history-service defines in C which don't affect the generated schema in a meaningful way.
# sqlite will return an error after processing queries with such function calls, so remove them.
sed -i -e '/normalizeId(/d' $MERGED_COMMANDS

sqlite3 <$MERGED_COMMANDS >$TARGET_FILE

echo $LATEST_VERSION > $VERSION_FILE