; ----------------------------------------------------
; Framakey Installer : MainScript
; ----------------------------------------------------
; Written by sarkos
; License : GPL
; Copyright : 2005-2011 © par Framakey
; Ce script permet de fabriquer un exécutable d'installation de la Framakey.
; Ce script est à compiler avec NSIS de Nullsoft (http://www.nullsoft.com).
; $id=FramakeyInstall.nsi $date=2011-05-05
; ----------------------------------------------------
; Général

;Niveau d'execution pour Windows Vista
RequestExecutionLevel user

; Définition variables entête
!define NAME "Framakey"
!define APP "FramakeyInstaller"
!define VER "2.0.1.0"
!define LANG "fr"
!define PACK "RC4"
!define COMMENTS "Installeur Framakey"
!define COMPANY "Framakey.org"
!define DEVELOP "par l'équipe Framakey"
!define DESCRIPTION "Framakey Installer"
!define WEBSITE "http://www.framakey.org"

; Nom de l'exécutable
Name "${NAME} ${VER} ${PACK}"
; Etiquette
Caption "${NAME} ${VER} ${PACK}"
; Icone
Icon "Framakey.ico"
WindowIcon off

; Nom du fichier à créer
OutFile "..\..\${APP}_${VER}-${PACK}-${LANG}.exe"

; Runtime switches
SetDateSave on
SetDatablockOptimize on
CRCCheck on
SilentInstall normal
InstallColors FF8080 000030
XPStyle on
AutoCloseWindow false
ShowInstDetails show
AllowRootDirInstall true

; Répertoire d'installation
InstallDir "$INSTDIR"

; ----------------------------------------------------
; Liste des includes
;(Standard NSIS)
!include MUI2.nsh
!include FileFunc.nsh
!include LogicLib.nsh

; ----------------------------------------------------
; Langues
; LoadLanguageFile "${NSISDIR}\Contrib\Language Files\French.nlf"

; ----------------------------------------------------
; Version Informations

VIProductVersion "${VER}"
VIAddVersionKey /LANG=1036 "ProductName" "${NAME}"
VIAddVersionKey /LANG=1036 "Comments" "${COMMENTS}"
VIAddVersionKey /LANG=1036 "CompanyName" "${COMPANY}"
VIAddVersionKey /LANG=1036 "LegalTrademarks" "${NAME} ${DEVELOP}"
VIAddVersionKey /LANG=1036 "LegalCopyright" "2005-2011© ${DEVELOP}"
VIAddVersionKey /LANG=1036 "FileDescription" "${DESCRIPTION}"
VIAddVersionKey /LANG=1036 "FileVersion" "${VER}"

; ----------------------------------------------------
; Pages
!insertmacro MUI_PAGE_LICENSE "..\..\licence.fr.txt"
!define MUI_LICENSEPAGE_CHECKBOX
!define MUI_LICENSEPAGE_CHECKBOX_TEXT "Merci de lire la licence suivante avant d'installer ${NAME}."
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!define MUI_CUSTOMFUNCTION_ABORT Oups
!insertmacro MUI_LANGUAGE "French"

; ----------------------------------------------------
; Texte de choix du répertoire de destination

DirText 'Utilisez "Parcourir" pour trouver le chemin de votre clé USB.$\n Très important :$\n Pensez à faire une sauvegarde de vos profils et documents personnels$\n si vous utilisiez une version antérieure.'

; ----------------------------------------------------
; Sections

Section "Main"
	SetOutPath "$INSTDIR"

	; Vérification de l'existence d'une ancienne version Framakey
	${If} ${FileExists} "$INSTDIR\Framakey"
		MessageBox MB_YESNO|MB_ICONQUESTION 'Vous êtes sur le point de remplacer une ancienne version de ${NAME} par une version Béta!$\n$\nEtes-vous sûr de vouloir continuer ?' IDYES ReplaceOldFK
		Abort ; arrête l'installeur.
	${EndIf}

	ReplaceOldFK:
	; Nettoyage de la clé
	RmDir /r "$INSTDIR\Framakey"
	; copie des fichiers
	File /r "..\..\Apps"
	File /r "..\..\Data"
	File /r "..\..\Framakey"
	File "..\..\Framakey.exe"
	File "..\..\Framakey.ini"
	File "..\..\Framakey2"
	File "..\..\readme.fr.txt"
	File "..\..\licence.fr.txt"
	File "..\..\autorun.inf"

SectionEnd

Section -PostInstall
  File "..\..\licence.fr.txt"

SectionEnd

; ----------------------------------------------------
; Fonctions générales

Function .onInit
	InitPluginsDir
; Si l'installeur est déjà lancé : on prévient l'installeur et on quitte
	System::Call 'kernel32::OpenMutexA(i 0x00020000, i 0, t "${APP}") i .r1 ?e'
	${If} $1 <> 0
		MessageBox MB_OK|MB_ICONEXCLAMATION "L'installeur est déjà lancé."
		Quit
	${EndIf}
	System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${APP}") i .r1 ?e'

	MessageBox MB_YESNO|MB_ICONQUESTION ' La suite logicielle ${NAME} "${PACK}" va être installée.$\n$\n Mise en garde : l$\'installation de la ${NAME} sur clé USB$\n peut prendre longtemps (suivant la vitesse de la clé) !$\n $\n  Continuer ?' IDYES NoAbort
	Abort ; arrête l'installeur.
	NoAbort:
FunctionEnd

Function Oups
  MessageBox MB_YESNO|MB_ICONQUESTION "Voulez-vous abandonner l'installation ?" IDYES NoCancelAbort
  Abort ; empêche l'arrêt de l'installeur.
  NoCancelAbort:
FunctionEnd

Function .onInstFailed
  MessageBox MB_OK "Installation incomplète."
FunctionEnd

Function .onInstSuccess
  MessageBox MB_YESNO|MB_ICONQUESTION 'Votre ${NAME} est maintenant installée dans le dossier$\n "$INSTDIR".$\n Voulez-vous la lancer ?' IDNO NoStart
  Exec "$INSTDIR\Framakey.exe"
  NoStart:
FunctionEnd

; ----------------------------------------------------
; Fin du script
