#!/bin/bash

source "$(dirname $_)/shared.sh"

[[ -f "$1" ]] || die "$1: No such file"

set +u
[[ ! -z "$2" && ! -f "$2" ]] && die "$2: No such file"
CONFFILE=$2
set -u

if [[ "$(head -c 6 "$1")" != "SQLite" ]]; then
	die "$1: Not an SQLite database"
fi

DATABASES=/data/data/$PKG/databases
PREFS=/data/data/$PKG/shared_prefs
TARGET=$DATABASES/db.sqlite

INFO=`adb-shell ls -l /data/data | grep $PKG`
FUID=`awk '{ print $2 }' <<<$INFO`
FGID=`awk '{ print $3 }' <<<$INFO`

if [[ -z $(run adb-shell mount | grep /data | grep rw) ]]; then
	echo -n "Remounting data/ read-write ... "
	run adb-shell mount -o remount,rw /data
	echo "done"
fi

run adb-shell mkdir -p $(dirname $TARGET)

echo -n "Pushing database to device ... "
adb push "$1" "$TARGET" || die

if [[ -f "$CONFFILE" ]]; then
	echo -n "Pushing configuration to device ... "
	adb push "$CONFFILE" "$PREFS/${PKG}_preferences.xml"
fi

#echo -n "Moving to target directory ... "
#run adb-shell "cat '$DTEMP/.rxdroid.db' >  '$TARGET'"
#run adb-shell rm "$DTEMP/.rxdroid.db"
#echo "done"

echo -n "Fixing permissions ... ($FUID.$FGID) "

for x in $PREFS $DATABASES; do
	run adb-shell chown $FGID.$FGID "$x" "$x/*"
	run adb-shell chmod 600 "$x/*"
done

echo "done"

adb-shell am force-stop $PKG &> /dev/null

