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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182 | #/bin/sh
# kdepim backup script with kdialog
# v .2 2008-03-21
#
kdialog --dontagain pimbackup:helloworld --msgbox "This is a simple backup script for all data related to kdepim and kdenetwork like mails, contacts, settings et cetera. It will save all settings and data for the following apps: akregator, basket, kaddressbook, kgpg, kmail, knotes, kopete, korganizer and kwallet. Just choose the target folder :)"
#
# SETUP
#
StoreFLDR=$(kdialog --getexistingdirectory ~/ --title " Where shall i store the backup ? ")
case $? in
1) kdialog --sorry "Bye bye" ; exit ;;
0) mkdir -p $StoreFLDR ; echo "ok" ;;
esac
TempFLDR=~/.pimbackup
if [ -d "$TempFLDR" ] ; then
rm -rf $TempFLDR
mkdir $TempFLDR
else
mkdir $TempFLDR
fi
#
# DATE FORMAT
#
# (YY.MM.DD - german)
#Date=$(date +%d.%m.%g)
# (DD-MM-YY)
Date=$(date +%g-%m-%d)
#
# LETS START
#
dcopRef=`kdialog --title "pimBackup" --progressbar "Starting backup ..." 25`
dcop $dcopRef setProgress 2
dcop $dcopRef setLabel "Creating temporary folders ..."
mkdir $TempFLDR/.kde
mkdir $TempFLDR/.kde/share
mkdir $TempFLDR/.kde/share/config
mkdir $TempFLDR/.kde/share/apps
mkdir $TempFLDR/.kde/share/config/kresources
mkdir $TempFLDR/.gnupg
dcop $dcopRef setProgress 3
dcop $dcopRef setLabel "Copying email accounts ..."
cp $HOME/.kde/share/config/emaildefaults $TempFLDR/.kde/share/config/
dcop $dcopRef setProgress 4
dcop $dcopRef setLabel "Copying email identities ..."
cp $HOME/.kde/share/config/emailidentities $TempFLDR/.kde/share/config/
dcop $dcopRef setProgress 5
dcop $dcopRef setLabel "Copying kmail settings ..."
cp $HOME/.kde/share/config/kmail.eventsrc $TempFLDR/.kde/share/config/
cp $HOME/.kde/share/config/kmailrc $TempFLDR/.kde/share/config/
dcop $dcopRef setProgress 6
dcop $dcopRef setLabel "Copying kaddressbook settings ..."
cp $HOME/.kde/share/config/kaddressbookrc $TempFLDR/.kde/share/config/
cp -r $HOME/.kde/share/config/kresources/contact $TempFLDR/.kde/share/config/kresources/
dcop $dcopRef setProgress 7
dcop $dcopRef setLabel "Copying emails and account data ..."
cp -r $HOME/.kde/share/apps/kmail $TempFLDR/.kde/share/apps/
dcop $dcopRef setProgress 8
dcop $dcopRef setLabel "Copying addressbook ..."
cp -r $HOME/.kde/share/apps/kabc $TempFLDR/.kde/share/apps/
dcop $dcopRef setProgress 9
dcop $dcopRef setLabel "Copying Korganizer settings and entries ..."
cp $HOME/.kde/share/config/korgacrc $TempFLDR/.kde/share/config/
cp $HOME/.kde/share/config/korganizerrc $TempFLDR/.kde/share/config/
cp -r $HOME/.kde/share/apps/korganizer $TempFLDR/.kde/share/apps/
dcop $dcopRef setProgress 10
dcop $dcopRef setLabel "Copying Kopete settings ..."
cp $HOME/.kde/share/config/kopeterc $TempFLDR/.kde/share/config/
cp $HOME/.kde/share/config/kopete $TempFLDR/.kde/share/config/
cp $HOME/.kde/share/config/kopete.eventsrc $TempFLDR/.kde/share/config/
cp -r $HOME/.kde/share/apps/kopete $TempFLDR/.kde/share/apps/
cp -r $HOME/.kde/share/apps/kopete_otr $TempFLDR/.kde/share/apps/
cp -r $HOME/.kde/share/apps/kopeterichtexteditpart $TempFLDR/.kde/share/apps/
dcop $dcopRef setProgress 11
dcop $dcopRef setLabel "Copying Konversation settings ..."
cp $HOME/.kde/share/config/konversationrc $TempFLDR/.kde/share/config/
cp $HOME/.kde/share/config/konversation.eventsrc $TempFLDR/.kde/share/config/
cp -r $HOME/.kde/share/apps/konversation $TempFLDR/.kde/share/apps/
dcop $dcopRef setProgress 12
dcop $dcopRef setLabel "Copying Knotes settings and notes ..."
cp $HOME/.kde/share/config/knotesrc $TempFLDR/.kde/share/config/
cp -r $HOME/.kde/share/apps/knotes $TempFLDR/.kde/share/apps/
dcop $dcopRef setProgress 13
dcop $dcopRef setLabel "Copying GPG settings and keys ..."
cp $HOME/.kde/share/config/kgpgrc $TempFLDR/.kde/share/config/
cp -r $HOME/.gnupg/* $TempFLDR/.gnupg/
dcop $dcopRef setProgress 13
dcop $dcopRef setLabel "Copying Kwallet settings ..."
cp -r $HOME/.kde/share/apps/kwallet $TempFLDR/.kde/share/apps/
cp $HOME/.kde/share/config/kwalletrc $TempFLDR/.kde/share/config/
dcop $dcopRef setProgress 14
dcop $dcopRef setLabel "Copying Akregator settings ..."
cp $HOME/.kde/share/config/akregator.eventsrc $TempFLDR/.kde/share/config/
cp $HOME/.kde/share/config/akregatorrc $TempFLDR/.kde/share/config/
cp $HOME/.kde/share/config/kopete.eventsrc $TempFLDR/.kde/share/config/
dcop $dcopRef setProgress 15
dcop $dcopRef setLabel "Copying Akregator feeds and cache ..."
cp -r $HOME/.kde/share/apps/akregator $TempFLDR/.kde/share/apps/
dcop $dcopRef setProgress 16
dcop $dcopRef setLabel "Copying Basket settings ..."
cp $HOME/.kde/share/config/basketrc $TempFLDR/.kde/share/config/
dcop $dcopRef setProgress 17
dcop $dcopRef setLabel "Copying Basket notes ..."
cp -r $HOME/.kde/share/apps/basket $TempFLDR/.kde/share/apps/
dcop $dcopRef setProgress 18
dcop $dcopRef setLabel "Creating tarball ..."
cd $TempFLDR
sleep 1
dcop $dcopRef setProgress 19
dcop $dcopRef setLabel "Creating tarball ..."
tar cf pimbackup.tar .
dcop $dcopRef setProgress 20
dcop $dcopRef setLabel "Checking bzip2 ..."
if [ -e "/usr/bin/pbzip2" ] ; then
dcop $dcopRef setProgress 21
dcop $dcopRef setLabel "Nice, you have pbzip2 installed :) ..."
sleep 2
dcop $dcopRef setProgress 22
dcop $dcopRef setLabel "Compressing tarball ..."
pbzip2 -p2 -r pimbackup.tar
else
dcop $dcopRef setProgress 21
dcop $dcopRef setLabel "Using standard bzip2 ..."
sleep 2
dcop $dcopRef setProgress 22
dcop $dcopRef setLabel "Compressing tarball ..."
bzip2 --best pimbackup.tar
fi
dcop $dcopRef setProgress 23
dcop $dcopRef setLabel "Moving backup to destination ..."
mv pimbackup.tar.bz2 $StoreFLDR/pimbackup.$Date.tar.bz2
dcop $dcopRef setProgress 24
dcop $dcopRef setLabel "Cleaning up ..."
rm -rf $TempFLDR
dcop $dcopRef setProgress 25
dcop $dcopRef setLabel "Backup saved in $StoreFLDR"
sleep 2
dcop $dcopRef close
kdialog --dontagain pimbackup:alldone --msgbox "You can find the compressed backup in $StoreFLDR, just extract it into your home directory to restore a backup or use the pimRestore script."
exit 1
|