Fix upgrade scripts
[platform/core/appfw/aul-1.git] / parser / component / script / 501.component_upgrade.sh.in
1 #!/bin/sh
2 PATH="/usr/bin:/bin:/usr/sbin:/sbin"
3
4 DB_VERSION="@COMPONENT_DB_VERSION@"
5
6 FILE_DB=".component.db"
7 PATH_SYS_DB="/opt/dbspace/${FILE_DB}"
8 PATH_USER_DB_DIR="/opt/dbspace/user"
9 PATH_UPGRADE_SCRIPT_DIR="/etc/aul/component/upgrade/scripts"
10 NAME_UPGRADE_SCRIPT="component_db_upgrade.sh"
11 CURRENT_DB_VERSION=0
12
13 CompareDBVersion() {
14   PATH_DB=$1
15   CURRENT_DB_VERSION=`sqlite3 ${PATH_DB} 'PRAGMA user_version;'`
16
17   echo "## Compare DB version"
18   echo " - Path: ${PATH_DB}"
19   echo " - Current DB version: ${CURRENT_DB_VERSION}"
20
21   if [ "${DB_VERSION}" -eq "${CURRENT_DB_VERSION}" ]; then
22     echo " - DB version[${DB_VERSION}] is equal to current DB version[${CURRENT_DB_VERSION}]"
23     return 0
24   elif [ "${DB_VERSION}" -gt "${CURRENT_DB_VERSION}" ]; then
25     echo " - DB version[${DB_VERSION}] is greater than current DB version[${CURRENT_DB_VERSION}]"
26     return 1
27   else
28     echo " - DB version[${DB_VERSION}] is less than current DB version[${CURRENT_DB_VERSION}]"
29     return 0
30   fi
31   echo "## Compare DB version [Done]"
32 }
33
34 UpgradeDB() {
35   PATH_DB=$1
36   VERSION=$2
37   echo "## UpgradeDB Path[${PATH_DB}] Version[${VERSION}]"
38   i=${VERSION}
39   while [ ${i} -le ${DB_VERSION} ]; do
40     FILE_SCRIPT="${i}_${NAME_UPGRADE_SCRIPT}"
41     PATH_SCRIPT="${PATH_UPGRADE_SCRIPT_DIR}/${FILE_SCRIPT}"
42     if [ -e "${PATH_SCRIPT}" ]; then
43       echo " - Script: ${PATH_SCRIPT}"
44       ${PATH_SCRIPT} ${PATH_DB}
45     fi
46
47     i=`expr ${i} + 1`
48   done
49   echo "## UpgradeDB Path[${PATH_DB}] Version[${VERSION}] [Done]"
50 }
51
52 CheckAndUpgradeDB() {
53   echo "### Check and upgrade DB"
54
55   CompareDBVersion ${PATH_SYS_DB}
56   RESULT=$?
57   if [ "${RESULT}" -eq 1 ]; then
58     VERSION=`expr ${CURRENT_DB_VERSION} + 1`
59     UpgradeDB ${PATH_SYS_DB} ${VERSION}
60   fi
61
62   for DIR in ${PATH_USER_DB_DIR}/*; do
63     echo " - Directory: ${DIR}"
64     if [ -d "${DIR}" ]; then
65       PATH_DB="${DIR}/${FILE_DB}"
66       CompareDBVersion ${PATH_DB}
67       RESULT=$?
68       if [ "${RESULT}" -eq 1 ]; then
69         VERSION=`expr ${CURRENT_DB_VERSION} + 1`
70         UpgradeDB ${PATH_DB} ${VERSION}
71       fi
72     fi
73   done
74   echo "### Check and upgrade DB [Done]"
75 }
76
77 echo "#### Upgrade component db ####"
78 CheckAndUpgradeDB
79 echo "#### Upgrade component db [Done] ####"