Prestashop export module

De Wiki de Romain RUDIGER
Aller à : navigation, rechercher

Script d'export SVN pour Prestashop

Petit script perso que je n'ai vraiment pas envie de perdre ... Il permet de créer une archive versionnée d'un module à partir du repository SVN, utile pour les livraisons. Les sources et librairies se trouvent à la fin de l'article.

Script

' Déclaration des variables
Dim oFSO, fVersion
Dim svnCommand, rarCommand
Dim version
Dim svnUsername, svnPassword
Dim moduleName

moduleName = InputBox("Nom du module", "Prestashop", "blockconfigurations")
svnUsername = "remi_rudiger"
svnPassword = InputBox("Mot de passe svn", "SVN")

' Déclaration des contantes
Const ForReading = 1, ForWriting = 2 

' Objet système
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")

' Suppression des répertoires temporaires
clean()

'Création des répertoires temporaires
oFSO.CreateFolder moduleName

' Export svn du dossier
svnCommand = "svn-win32-1.5.6\bin\svn export -r HEAD --username """&svnUsername&""" --password """&svnPassword&""" --force ""https://emeraude.novalan.fr/svn/prestashop/trunk/prestashop_1.2.5/modules/"&moduleName&""" """&moduleName&""""
Return = WshShell.Run(svnCommand , 1, true) 

If Not Return = 0 Then
	MsgBox "La connexion SVN a échouée !"
	clean()
	WScript.Quit
End If

' Recuperation de la version
Set fVersion = oFSO.OpenTextFile(moduleName&"\"&moduleName&".php", ForReading)
while Not fVersion.AtEndOfStream 
	ligne = fVersion.ReadLine
	pos = InStr(ligne, "$this->version")
	If pos > 0 Then
		ligne = Replace(ligne, vbTab, "")
		ligne = Replace(ligne, " ", "")
		ligne = Replace(ligne, "'", "")

		pos1 = InStr(ligne, "=")
		pos1 = Len(ligne) - pos1
		ligne = Right(ligne, pos1)
		pos2 = InStr(ligne, ";")
		version = Left(ligne, pos2-1)
  End If
Wend
fVersion.Close


' Création de l'archive
rarCommand = "rar a "&moduleName&".zip -ag."&version&".vYYYYMMDDHHMM -r "&moduleName&"\*"
Return = WshShell.Run(rarCommand , 1, true) 

If Not Return = 0 Then
	MsgBox "La création de l'archive a échouée !"
	clean()
	WScript.Quit
End If

' Suppression des répertoires temporaires
clean()

Function clean()
	' Suppression des répertoires temporaires
	If oFSO.FolderExists(moduleName) Then 
		oFSO.DeleteFolder moduleName,True
	End If
End Function


Sources

Media:Export_module.zip