2007-08-13 Marcus Brinkmann <marcus@g10code.de>
[gpg4win.git] / src / inst-dirmngr.nsi
1 # inst-dirmngr.nsi - Installer snippet.            -*- coding: latin-1; -*-
2 # Copyright (C) 2007 g10 Code GmbH
3
4 # This file is part of Gpg4win.
5
6 # Gpg4win is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
10
11 # Gpg4win is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 # MA 02110-1301, USA.
20
21
22 !ifdef prefix
23 !undef prefix
24 !endif
25 !define prefix ${ipdir}/dirmngr-${gpg4win_pkg_dirmngr_version}
26
27 !ifdef DEBUG
28 Section "dirmngr" SEC_dirmngr
29 !else
30 Section "-dirmngr" SEC_dirmngr
31 !endif
32   SetOutPath "$INSTDIR"
33 !ifdef SOURCES
34   File "${gpg4win_pkg_dirmngr}"
35 !else
36   Var /GLOBAL DirMngrStatus
37   g4wihelp::service_query "DirMngr"
38   StrCpy $DirMngrStatus $R0
39
40   StrCmp $DirMngrStatus "MISSING" dirmngr_stopped
41   # Try to stop the daemon in case it is running.
42   g4wihelp::service_stop "DirMngr"
43 dirmngr_stopped:
44
45   File "${prefix}/bin/dirmngr.exe"
46   File "${prefix}/bin/dirmngr-client.exe"
47   File "${prefix}/libexec/dirmngr_ldap.exe"
48
49   # We need to create the cache directory, as this is not
50   # automatically created by dirmngr.  Actually, the default should be
51   # different.  FIXME.
52   CreateDirectory "$INSTDIR\cache"
53
54   # FIXME: Error checking.  Also, check if --service really reaches
55   # the service both times.
56
57   StrCmp $DirMngrStatus "MISSING" 0 dirmngr_created
58     # Create the service.
59     g4wihelp::service_create "DirMngr" "DirMngr" '"$INSTDIR\dirmngr.exe" --service'
60 dirmngr_created:
61
62   # We only start the dirmngr if it was running before.
63   StrCmp $DirMngrStatus "RUNNING" 0 dirmngr_restarted
64   # Start the service.
65   g4wihelp::service_start "DirMngr" "1" "\"$INSTDIR\dirmngr.exe\""
66 dirmngr_restarted:
67
68
69   # If requested, install the configuration files.
70   ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
71   StrCmp $0 "" no_config_dirmngr_files
72   SetOutPath "$0\gnupg"
73
74   g4wihelp::config_fetch "dirmngr.conf"
75   StrCmp $R0 "" no_config_dirmngr_conf
76     CopyFiles $R0 "$0\gnupg\dirmngr.conf"
77   no_config_dirmngr_conf:
78
79   g4wihelp::config_fetch "dirmngr_ldapservers.conf"
80   StrCmp $R0 "" no_config_dirmngr_ldapservers_conf
81     CopyFiles $R0 "$0\gnupg\dirmngr_ldapservers.conf"
82   no_config_dirmngr_ldapservers_conf:
83
84 !endif
85 SectionEnd