6fd13cf1a3344ecd55e9f03eb70f46fccd52bb19
[platform/core/appfw/vconf-buxton.git] / src / vconf-buxton-backup-mem-layer.sh
1 #!/bin/bash
2 #
3 #     This script backup the buxton system layer temp that is
4 #     in memory to the system layer base. All keys are copied
5 #     prefixed with memory_init/ .
6 #
7 #     See vconf-buxton-restore-mem-layer.sh
8 #
9 # author: jose.bollo@open.eurogiciel.org
10
11 layermem=temp
12 layerdb=base
13 groupmem=vconf
14 groupdb=vconf
15 label=User
16
17 reset=$(printf '\e[0m')
18 red=$(printf '\e[1;31m')
19 green=$(printf '\e[1;32m')
20
21 #
22 # check that buxton service is available
23 #
24 if ! buxtonctl -s check > /dev/null
25 then
26     echo "${red}ERROR: can not connect to buxton service${reset}"
27     exit 1
28 fi
29
30 #
31 # create the group for vconf
32 #
33 if buxtonctl -s list-groups "$layerdb" | grep -q "found group $groupdb"
34 then
35     echo "${green}group $groupdb already exists${reset}"
36 elif buxtonctl -s create-group "$layerdb" "$groupdb"
37 then
38     echo "${green}group $groupdb succesfully created${reset}"
39 else
40     echo "${red}ERROR: can't create group '$groupdb' for layer '$layerdb'${reset}"
41     exit 1
42 fi
43
44 #
45 # Ensure label for the group
46 #
47 if buxtonctl -s set-label "$layerdb" "$groupdb" "$label"
48 then
49     echo "${green}group $groupdb succesfully set to label '$label'${reset}"
50 else
51     echo "${red}ERROR: can't set label '$label' to group '$groupdb' for layer '$layerdb'${reset}"
52     exit 1
53 fi
54
55
56 buxtonctl -s list-keys "$layermem" "$groupmem" |
57 sed 's:^found key ::' |
58 while read keymem
59 do
60     keydb="memory_init/$keymem"
61     if ! q=$(buxtonctl -s get "$layermem" "$groupmem" "$keymem")
62     then
63         echo "${red}ERROR can't get value of $keymem${reset}"
64     else
65         type=$(echo -n "$q" | sed 's/.* = \([^:]*\): .*/\1/')
66         value=$(echo -n "$q" | sed 's/.* = [^:]*: \(.*\)/\1/')
67         echo -n "${reset}setting $keydb, $type: $value ..."
68         if ! buxtonctl -s -- set-$type "$layerdb" "$groupdb" "$keydb" "$value"
69         then
70             echo "${red}ERROR WHILE SETTING VALUE${reset}"
71         elif ! buxtonctl -s set-label "$layerdb" "$groupdb" "$keydb" "$label"
72         then
73             echo "${red}ERROR WHILE SETTING LABEL${reset}"
74         else
75             echo "${green}done${reset}"
76         fi
77     fi
78 done
79