;installation de FileZilla 3.2.0 à partir du fichier FileZilla_3.2.0_win32.zip
;Modification des paramètres par défauts de FileZilla : langue, mode de transfert FTP passif ou actif)
;Ajout d'une liste de sites dans le "Gestionnaire de sites"
;JEAN-RENE DANIS 14/01/09 www.jrdanis.com
;Liste des variable(s)
;variable qui définit l'emplacement du fichier log
$DossierDeLog = "%systemdrive%\install\log\"
;variable qui définit la destination temporaire :
$dossierprov = '%systemdrive%\install'
;variable qui définit le dossier de 7Zip ou se trouve 7z.exe :
$SEI_7Z = '%SYSTEMDrive%\Program Files\7-Zip'
;Liste des sites à créer dans le gestionnaire de sites de FileZilla
$TableauDesTitres= "SEI AIX-LES-BAINS", "SEI CASABLANCA", "SEI
CRISSEY", "SEI DARDILLY", "SEI MOIRANS"
$TableauDesAdr= "172.18.83.10", "ftp.seicasablanca.com",
"172.18.27.10", "172.18.27.10", "172.18.103.10"
$TableauDesMode= "0", "3", "0", "0", "0"
;Création du dossier pour mettre le fichier log si ce dossier n'existe pas
IF NOT EXIST ($DossierDeLog)
MD $DossierDeLog
ENDIF
;Ouverture du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
?? "Ouverture de @SCRIPTNAME à @TIME"
ELSE
? "Impossible de créer le fichier log"
GOTO "finerreur"
ENDIF
;determine le chemin du dossiers "program files" pour les applications 32 bits
;Dans le cas d'un système d'exploitation 64 bits : les applications 32
bits sont dans le dossiers ProgramFilesDir (x86).
$PRGDIR=readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion","ProgramFilesDir (x86)")
IF $PRGDIR =""
;Si ProgramFilesDir (x86) n'exite pas : c'est que le sysème
d'exploitation est 32bits, dans ce cas les applications 32bits sont
dans le dossier ProgramFilesDir.
$PRGDIR=readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion","ProgramFilesDir")
ENDIF
? 'Chemin du dossiers "program files" pour les applications 32bits : $PRGDIR'
;determine le chemin du dossier de "default user"
cd "%USERPROFILE%"
cd ".."
cd "Default User\"
$DEFUSERHOME=@CURDIR
? "Chemin du dossier de 'default user' : $DEFUSERHOME"
cd @SCRIPTDIR\
;verifie la présence de 7zip
IF EXIST ($SEI_7Z)
? "$SEI_7Z existe."
ELSE
? "L'installation necessite un logiciel de décompression."
? "$SEI_7Z n'esiste pas, installez le puis recommencer."
GOTO "finerreur"
ENDIF
;décompression d'un fichier
$fichieradecomp = 'FileZilla_3.2.0_win32.zip'
$destinationdeladecomp = $dossierprov
$commande='"$SEI_7Z\7z.exe" x -o$destinationdeladecomp $fichieradecomp'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
;Copie d'un dossier
COPY "$dossierprov\FileZilla-3.2.0" "$PRGDIR\FileZilla\" /s
;Si le dossier "menu démarrer\Utilitaires" n'existe : le créer
If AddProgramGroup("Utilitaires", 1) = 0
? "Dossier Menu démarrer\Utilitaires créé...."
Endif
;création du raccourci
IF ADDPROGRAMITEM ('"$PRGDIR\FileZilla\FileZilla.exe"', "FileZilla", "", 0, "",0,0) = 0
? "Raccourci FileZilla créé...."
Endif
; Personalisation des paramètres de Filezilla pour les nouveaux profils
; Création du dossier où se situe le fichiers de paramètre :
MD "$DEFUSERHOME\application data\FileZilla\"
IF EXIST ("$DEFUSERHOME\application data\FileZilla\filezilla.xml")
DEL "$DEFUSERHOME\application data\FileZilla\filezilla.xml" /f /h
ENDIF
IF RedirectOutput("$DEFUSERHOME\application data\FileZilla\filezilla.xml") = 0
? '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'
? '<FileZilla3>'
? ' <Settings>'
? ' <Setting name="Use Pasv mode"
type="number">0</Setting>' ; Désactivation du mode passif
? ' <Setting name="Greeting version"
type="string">3.2.0</Setting>' ; Désactivation du message de
bienvenue
? ' </Settings>'
? '</FileZilla3>'
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : $DEFUSERHOME\application data\FileZilla\filezilla.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer le fichier $DEFUSERHOME\application data\FileZilla\filezilla.xml"
ENDIF
; Personalisation des paramètres de Filezilla pour le profil Courrant
; Création du dossier où se situe le fichiers de paramètre :
MD "%USERPROFILE%\application data\FileZilla\"
IF EXIST ("%USERPROFILE%\application data\FileZilla\filezilla.xml")
DEL "%USERPROFILE%\application data\FileZilla\filezilla.xml" /f /h
ENDIF
IF RedirectOutput("%USERPROFILE%\application data\FileZilla\filezilla.xml") = 0
? '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'
? '<FileZilla3>'
? ' <Settings>'
? ' <Setting name="Use Pasv mode"
type="number">0</Setting>' ; Désactivation du mode passif
? ' <Setting name="Greeting version"
type="string">3.2.0</Setting>' ; Désactivation du message de
bienvenue
? ' </Settings>'
? '</FileZilla3>'
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : %USERPROFILE%\application data\FileZilla\filezilla.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer le fichier %USERPROFILE%\application data\FileZilla\filezilla.xml"
ENDIF
;Creation de la liste des sites pour les nouveaux profils
MD "$DEFUSERHOME\application data\FileZilla\"
IF EXIST ("$DEFUSERHOME\application data\FileZilla\sitemanager.xml")
DEL "$DEFUSERHOME\application data\FileZilla\sitemanager.xml" /f /h
ENDIF
? "Ecriture de l'entête de $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
IF RedirectOutput("$DEFUSERHOME\application data\FileZilla\sitemanager.xml") = 0
? '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'
? '<FileZilla3>'
? ' <Servers>'
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : entête de $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer : entête de $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
ENDIF
? "Ecriture du corps du fichier $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
$NumeroDeElement = 0
For Each $Element In $TableauDesTitres
? "$Element, " + $TableauDesAdr[$NumeroDeElement] + ", " + $TableauDesMode[$NumeroDeElement]
IF RedirectOutput("$DEFUSERHOME\application data\FileZilla\sitemanager.xml") = 0
? " <Server>"
? " <Host>" + $TableauDesAdr[$NumeroDeElement] + "</Host>"
? " <Port>21</Port>"
? " <Protocol>0</Protocol>"
? " <Type>0</Type>"
? " <User></User>"
? " <Logontype>" + $TableauDesMode[$NumeroDeElement] + "</Logontype>"
? " <TimezoneOffset>0</TimezoneOffset>"
? " <PasvMode>MODE_DEFAULT</PasvMode>"
? " <MaximumMultipleConnections>0</MaximumMultipleConnections>"
? " <EncodingType>Auto</EncodingType>"
? " <BypassProxy>0</BypassProxy>"
? " <Name>$Element</Name>"
? " <Comments></Comments>"
? " <LocalDir></LocalDir>"
? " <RemoteDir></RemoteDir>$Element"
? " </Server>"
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : corps de $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer : corps de $DEFUSERHOME\application
data\FileZilla\sitemanager.xml pour site $NumeroDeElement"
ENDIF
$NumeroDeElement = $NumeroDeElement + 1
Next
? "Ecriture du pied de page de $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
IF RedirectOutput("$DEFUSERHOME\application data\FileZilla\sitemanager.xml") = 0
? " </Servers>"
? "</FileZilla3>"
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : pied de page de $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer : pied de page de $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
ENDIF
;Creation de la liste des sites pour l'utilisateur courrant
MD "%USERPROFILE%\application data\FileZilla\"
IF EXIST ("%USERPROFILE%\application data\FileZilla\sitemanager.xml")
DEL "%USERPROFILE%\application data\FileZilla\sitemanager.xml" /f /h
ENDIF
? "Ecriture de l'entête de %USERPROFILE%\application data\FileZilla\sitemanager.xml"
IF RedirectOutput("%USERPROFILE%\application data\FileZilla\sitemanager.xml") = 0
? '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'
? '<FileZilla3>'
? ' <Servers>'
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : entête de %USERPROFILE%\application data\FileZilla\sitemanager.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer : entête de %USERPROFILE%\application data\FileZilla\sitemanager.xml"
ENDIF
? "Ecriture du corps du fichier %USERPROFILE%\application data\FileZilla\sitemanager.xml"
$NumeroDeElement = 0
For Each $Element In $TableauDesTitres
IF RedirectOutput("%USERPROFILE%\application data\FileZilla\sitemanager.xml") = 0
? " <Server>"
? " <Host>" + $TableauDesAdr[$NumeroDeElement] + "</Host>"
? " <Port>21</Port>"
? " <Protocol>0</Protocol>"
? " <Type>0</Type>"
? " <User></User>"
? " <Logontype>" + $TableauDesMode[$NumeroDeElement] + "</Logontype>"
? " <TimezoneOffset>0</TimezoneOffset>"
? " <PasvMode>MODE_DEFAULT</PasvMode>"
? " <MaximumMultipleConnections>0</MaximumMultipleConnections>"
? " <EncodingType>Auto</EncodingType>"
? " <BypassProxy>0</BypassProxy>"
? " <Name>$Element</Name>"
? " <Comments></Comments>"
? " <LocalDir></LocalDir>"
? " <RemoteDir></RemoteDir>$Element"
? " </Server>"
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : corps de %USERPROFILE%\application data\FileZilla\sitemanager.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer : corps de %USERPROFILE%\application
data\FileZilla\sitemanager.xml pour site $NumeroDeElement"
ENDIF
$NumeroDeElement = $NumeroDeElement + 1
Next
? "Ecriture du pied de page de %USERPROFILE%\application data\FileZilla\sitemanager.xml"
IF RedirectOutput("%USERPROFILE%\application data\FileZilla\sitemanager.xml") = 0
? " </Servers>"
? "</FileZilla3>"
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : pied de page de %USERPROFILE%\application data\FileZilla\sitemanager.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer : pied de page de %USERPROFILE%\application data\FileZilla\sitemanager.xml"
ENDIF
;effacement d'un dossier
$dossierasupprimer = "$dossierprov\FileZilla-3.2.0"
del $dossierasupprimer + "\*.*" /c /f /s
rd $dossierasupprimer /s
IF NOT EXIST ($dossierasupprimer)
? "Le dossier : " + $dossierasupprimer + " a été supprimé"
ELSE
? "Le dossier : " + $dossierasupprimer + " n'a pas été supprimé complétement"
ENDIF
GOTO "fin"
;label de fin avec erreurs
:finerreur
? "fin du script d'installation : erreur"
;Ouverture du fichier log pour signaler la présence d'erreurs
IF RedirectOutput($DossierDeLog + "ERREUR_" + @SCRIPTNAME +".txt") = 0
?? "Ouverture de erreur_" + @SCRIPTNAME + " à " + @TIME
? "le script d'installation à rencontrer des erreurs : consulter le fichier log :"
? $DossierDeLog + @SCRIPTNAME +".txt"
ENDIF
sleep 5
;label de fin sans erreurs
:fin
? "fin du script d'installation"
;annule la redirection vers un fichier
RedirectOutput("")
|