source: zero-lliurex-dni/trunk/EPI_FILES/fuentes/zero-lliurex-dni.install-files/usr/share/zero-lliurex-dni/dnie_script @ 6666

Last change on this file since 6666 was 6666, checked in by jrpelegrina, 3 years ago

WIP in migration of accv and dni zmd to epi

  • Property svn:executable set to *
File size: 7.1 KB
Line 
1#!/bin/bash
2
3
4USER_NAME=$USER # User name
5USER_HOME="" # Home user folder
6FF_PROFILE_PATH="" # Absolute path to user firefox profile
7TH_PROFILE_PATH="" # Absolute path to user firefox profile
8LIBRARY="/usr/lib/libpkcs11-dnie.so"
9
10ACTION="$1"
11
12
13user_home(){
14        USER_HOME=$(getent passwd "$USER_NAME" | cut -d: -f 6)
15}
16
17
18test_running_firefox(){
19
20   is_running=$(ps -aux | grep /usr/lib/firefox/firefox | grep -v grep | wc -l)
21        if [ $is_running -gt 0 ]; then
22                while [ $is_running -gt 0 ] ; do 
23                        echo "Firefox is running. Stop it!..."
24                        is_running=$(ps -aux | grep /usr/lib/firefox/firefox | grep -v grep | wc -l)
25                done
26        fi
27        return 0
28}
29
30test_running_thunderbird(){
31
32        is_running=$(ps -fe | grep thunderbird | grep -v grep | wc -l)
33        if [ $is_running -gt 0 ]; then
34                while [ $is_running -gt 0 ] ; do 
35                        echo "Thunderbird is running. Stop it!"
36                        is_running=$(ps -fe | grep thunderbird | grep -v grep | wc -l)
37                done
38        fi
39        return 0
40}
41
42
43test_installed_package(){
44
45   TEST=$( dpkg-query -s $1 2> /dev/null| grep Status | cut -d " " -f 4 )
46        if [ "$TEST" == 'installed' ]; then
47                return 0
48        else
49                return 1       
50        fi
51}
52
53
54get_firefox_default_profile(){
55   
56   # Getting Mozilla products default profile
57   # http://kb.mozillazine.org/Profiles.ini_file
58   #
59   # Get default profile info
60   # This script must be capable of dealing with multiple profiles
61   # and relative or absolute paths, for now ... buff!!
62   #
63   # This script get Default path profile if Default=1 or
64   # get first profile in other case
65 
66   TMP_FILE=$(mktemp)
67   cat $FF_PATH/profiles.ini | awk -F ' *= *' '{ if ($1 ~ /^\[/) section=$1; else if ($1 !~ /^$/) print $1 section "=" "\"" $2 "\"" }' > $TMP_FILE
68   DEFAULT_EXISTS=$(grep ^Default $TMP_FILE)
69   if [ -n $DEFAULT_EXISTS ]; then
70        PROFILE_ID=$(cat $TMP_FILE | grep -m 1 Profile[0-9] | cut -d"[" -f 2 | cut -d"]" -f 1 )
71   else
72        PROFILE_ID=$(echo $DEFAULT_EXISTS | grep -m 1 Profile[0-9] | cut -d"[" -f 2 | cut -d"]" -f 1 )
73   fi
74   IS_RELATIVE=$(cat $TMP_FILE | grep $PROFILE_ID | grep ^IsRelative | cut -d"=" -f 2 | sed -e 's/\"//g')
75   TMP_PATH=$(cat $TMP_FILE | grep $PROFILE_ID | grep ^Path | cut -d"=" -f 2 | sed -e 's/\"//g')
76   if [ $IS_RELATIVE = "0" ]; then
77      FF_PROFILE_PATH=$TMP_PATH
78   else
79      FF_PROFILE_PATH=$FF_PATH/$TMP_PATH
80   fi
81   rm -f $TMP_FILE
82}
83
84
85get_thunderbird_default_profile(){
86   
87   # Getting Mozilla products default profile
88   # http://kb.mozillazine.org/Profiles.ini_file
89   #
90   # Get default profile info
91   # This script must be capable of dealing with multiple profiles
92   # and relative or absolute paths, for now ... buff!!
93   #
94   # This script get Default path profile if Default=1 or
95   # get first profile in other case
96 
97   TMP_FILE=$(mktemp)
98   cat $TH_PATH/profiles.ini | awk -F ' *= *' '{ if ($1 ~ /^\[/) section=$1; else if ($1 !~ /^$/) print $1 section "=" "\"" $2 "\"" }' > $TMP_FILE
99   DEFAULT_EXISTS=$(grep ^Default $TMP_FILE)
100   if [ -n $DEFAULT_EXISTS ]; then
101        PROFILE_ID=$(cat $TMP_FILE | grep -m 1 Profile[0-9] | cut -d"[" -f 2 | cut -d"]" -f 1 )
102   else
103        PROFILE_ID=$(echo $DEFAULT_EXISTS | grep -m 1 Profile[0-9] | cut -d"[" -f 2 | cut -d"]" -f 1 )
104   fi
105   IS_RELATIVE=$(cat $TMP_FILE | grep $PROFILE_ID | grep ^IsRelative | cut -d"=" -f 2 | sed -e 's/\"//g')
106   TMP_PATH=$(cat $TMP_FILE | grep $PROFILE_ID | grep ^Path | cut -d"=" -f 2 | sed -e 's/\"//g')
107   if [ $IS_RELATIVE = "0" ]; then
108      TH_PROFILE_PATH=$TMP_PATH
109   else
110      TH_PROFILE_PATH=$TH_PATH/$TMP_PATH
111   fi
112   rm -f $TMP_FILE
113}
114
115
116init_secmod_firefox(){
117
118  if [ -f "$FF_PROFILE_PATH/secmod.db" ]; then
119                echo "Removing ACCV module in Firefox"
120         rm $FF_PROFILE_PATH/secmod.db
121  fi
122
123}
124
125
126init_secmod_thunderbird(){
127
128  if [ -f "$TH_PROFILE_PATH/secmod.db" ]; then
129                echo "Removing ACCV module in Thunderbird"
130        rm $TH_PROFILE_PATH/secmod.db
131  fi
132
133}
134
135
136remove_dnie_module_firefox(){
137
138
139        echo "Removing DNIe modules in Firefox..."
140        su $USER -c "modutil -disable $FF_MODULE_NAME -force -dbdir $FF_PROFILE_PATH 2>&1"
141        su $USER -c "modutil -delete $FF_MODULE_NAME -force -dbdir $FF_PROFILE_PATH 2>&1"
142
143}
144
145remove_dnie_module_thunderbird(){
146
147        echo "Removing DNIe modules in Thunderbird..."
148        su $USER -c "modutil -disable $TH_MODULE_NAME -force -dbdir $TH_PROFILE_PATH 2>&1"
149        su $USER -c "modutil -delete $TH_MODULE_NAME -force -dbdir $TH_PROFILE_PATH 2>&1"
150}
151
152
153enable_dnie_module_firefox(){
154
155        echo "Enabling DNIe modules in Firefox..."
156        su $USER -c "modutil -add $FF_MODULE_NAME -force -libfile $LIBRARY -dbdir $FF_PROFILE_PATH 2>&1"
157        su $USER -c "modutil -enable $FF_MODULE_NAME -force -dbdir $FF_PROFILE_PATH 2>&1"
158
159}
160
161
162enable_dnie_module_thunderbird(){
163
164        echo "Enabling DNIe modules in Thunderbid..."
165        su $USER -c "modutil -add $TH_MODULE_NAME -force -libfile $LIBRARY -dbdir $TH_PROFILE_PATH 2>&1"
166        su $USER -c "modutil -enable $TH_MODULE_NAME -force -dbdir $TH_PROFILE_PATH 2>&1"
167       
168}
169
170
171test_firefox_user_profile() {
172
173   if [ -d $FF_PATH ]; then
174                get_firefox_default_profile
175                if [ ! -d $FF_PROFILE_PATH ]; then
176                echo "Error: Some problem with firefox profile"
177                return 1
178                fi
179                return 0
180   else
181                echo "Creating Firefox profile. Now it will be launched, then please close Firefox and installation continues"
182     
183                su $USER -c "firefox"
184                test_running_firefox
185                get_firefox_default_profile
186                return 0
187   fi
188       
189}
190
191test_thunderbird_user_profile() {
192
193   if [ -d $TH_PATH ]; then
194                get_thunderbird_default_profile
195                if [ ! -d $TH_PROFILE_PATH ]; then
196                echo "Error: some problem with thunderbird profile"
197                return 1
198                fi
199                return 0
200   else
201                echo "Creating Thunderbird profile. Now it will be launched, then please close Thunderbird and installation continues"
202                su $USER -c "thunderbird"
203                test_running_thunderbird
204                get_thunderbird_default_profile
205                return 0
206   fi
207       
208}
209
210do_firefox(){
211
212   test_installed_package firefox
213   TESTED=$?
214   if [ "$TESTED" == "0" ] ; then
215                test_running_firefox
216                if [ $? -gt 0 ]; then
217                        echo "Firefox is running. Stop it!..."
218                exit 2
219                else
220                        test_firefox_user_profile
221                        if [ $? == 0 ]; then
222                                  init_secmod_firefox
223          remove_dnie_module_firefox
224          enable_dnie_module_firefox
225          if ! [ $? -eq 0 ];then
226              exit 1
227          fi   
228                        else
229                                  exit 1
230                        fi
231                fi
232   else
233      echo "Firefox is not installed"
234          exit 1
235   fi
236}
237
238
239
240do_thunderbird(){
241
242   test_installed_package thunderbird
243   TESTED=$?
244   if [ "$TESTED" == "0" ] ; then
245                test_running_thunderbird
246                if [ $? -gt 0 ]; then
247                        echo "Thunderbird is running. Stop it!"
248                exit 2
249                else
250                        test_thunderbird_user_profile
251                        if [ $? == 0 ]; then
252                init_secmod_thunderbird
253          remove_dnie_module_thunderbird
254                enable_dnie_module_thunderbird
255          if ! [ $? -eq 0 ];then
256              exit 1
257          fi
258             
259                        else
260                                  exit 1
261                        fi
262                fi
263   else
264     
265        echo "Thunderbird is not installed"
266        exit 1
267   fi
268}
269
270
271case $ACTION in
272
273        postInstall)
274               
275                user_home
276                sleep 1
277                echo "Configuring DNIe modules in Firefox..."
278                FF_MODULE_NAME="DNI_E"
279                FF_PATH="$USER_HOME/.mozilla/firefox"
280                do_firefox
281                echo "Configuring DNIe modules in Thunderbird..."
282                TH_MODULE_NAME="DNI_E"
283                TH_PATH="$USER_HOME/.thunderbird"
284                do_thunderbird
285   
286        ;;
287
288esac
289exit 0
Note: See TracBrowser for help on using the repository browser.