diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-07-04 22:38:03 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-07-04 22:38:03 +0000 |
commit | dadc34655c3ab961b0b0b94a10eaaba710f0b5e8 (patch) | |
tree | 99e72842fe687baea16376a147619b6048d7e441 /contrib/mysqlcrypt.sh | |
download | kmymoney-dadc34655c3ab961b0b0b94a10eaaba710f0b5e8.tar.gz kmymoney-dadc34655c3ab961b0b0b94a10eaaba710f0b5e8.zip |
Added kmymoney
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kmymoney@1239792 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'contrib/mysqlcrypt.sh')
-rw-r--r-- | contrib/mysqlcrypt.sh | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/contrib/mysqlcrypt.sh b/contrib/mysqlcrypt.sh new file mode 100644 index 0000000..b04525b --- /dev/null +++ b/contrib/mysqlcrypt.sh @@ -0,0 +1,99 @@ +# mysqlcrypt.sh +# This shell script will run KMyMoney in a MySql database +# and uses the MySql dump program to maintain a copy of the data. +# Additionally, another copy is written to a backup +# directory before running KMyMoney. These backups will be deleted after a +# user-specified number of days. + +# Optionally, these data files may be encrypted. +# For encryption, it is necessary that you have the 'gpg' program installed, +# and have set up a key identified by an email address (which may be a pseudo address). +# See 'man gpg' for more info. The kgpg program will help set up these keys. +# DO NOT forget the password associated with gpg; you will need it to access your data. + +# Optionally, the data can be removed from the database after KMyMoney finishes, +# and reloaded next time you run. + +# It is assumed that your logon user name has the necessary database permissions. + +# Please set the following variables to your requirements +MYDIR=$HOME/money # directory where the encrypted copy is to be held +BUDIR=$MYDIR/backup # directory where the backups should go; +FILE=myfin # name for the encrypted copy +DBNAME=KMyMoney # mysql datbase name +DROP=y # (y/n) - whether to delete info from database after running kmm +SILENT=n # if set to y, backups will be deleted silently, else you will be asked +CRYPTEMAIL=me@googlemail.com # delete this line if you don't want encrypted copies +declare -i KEEP=7 # number of days to keep backups +# end of user-changeable directives + +if [ ! -d $MYDIR ] ; then + mkdir $MYDIR; +fi +if [ ! -d $BUDIR ] ; then + mkdir $BUDIR; +fi + +if [ -z $CRYPTEMAIL ]; then + EFILE=${FILE}; +else + EFILE=${FILE}.gpg; +fi + +declare NOW=`date +%Y%m%d%H%M%S` + +if [ ! -f $MYDIR/$EFILE ] ; then + kdialog --warningcontinuecancel "A version of $FILE does not exist in $MYDIR.\nWhen KMyMoney starts, please open or create a file and use the 'File/Save as Database' function." + if [ $? -ne 0 ]; then + exit; + fi + KMMCMD=-n; +else + KMMCMD=sql://$USER@localhost/$DBNAME?driver=QMYSQL3 + # backup file + cp $MYDIR/$EFILE $BUDIR/$NOW$EFILE + LOAD=y + mysql -e "use $DBNAME;" 2>/dev/null + if [ $? -eq 0 ]; then + kdialog --warningyesno "A $DBNAME database exists. Do you wish to run with this?\n If not, the database will be reloaded from the encrypted file" + if [ $? -eq 0 ]; then # replied yes + LOAD=n + fi; + fi; + if [ $LOAD = y ]; then + echo "Reloading from file" + if [ -z $CRYPTEMAIL ]; then + mysql <$MYDIR/$EFILE; + else + gpg --decrypt $MYDIR/$EFILE |mysql; + fi; + fi; +fi +#run kmymoney +kmymoney $KMMCMD +mysqldump --databases -R $DBNAME >$MYDIR/$FILE +if [ ! -z $CRYPTEMAIL ]; then + rm -f $MYDIR/$EFILE + gpg -e -r $CRYPTEMAIL $MYDIR/$FILE + rm $MYDIR/$FILE; +fi + +case ${DROP:0:1} in + y | Y) mysql -e "drop database KMyMoney;";; +esac + +# delete outdated backup files +cd $BUDIR +for i in `find . -name "*${EFILE}" -ctime +${KEEP}`; do + case ${SILENT:0:1} in + y | Y) ANSWER=y + ;; + *) read -p "Delete $i?" ANSWER + ;; + esac + case ${ANSWER:0:1} in + y | Y) echo "Deleting $i!" + rm $i + ;; + esac +done |