Partage de script modulaire
Posté : 28 févr. 2025 - 13:53
wapt version 2.6.0.16937
Bonjour,
Je me permets de partager le script (pour windows) dont je me sers pour déployer les logiciels sur mon parc.
Bonjour,
Je me permets de partager le script (pour windows) dont je me sers pour déployer les logiciels sur mon parc.
Code : Tout sélectionner
# -*- coding: utf-8 -*-
#---------------------------------------------------------------------
#Ce script sert à déployer des logiciels par l'intermédiaire de wapt.-
#Il prends en charge les applications portables, les exe et les msi.--
#Il ne prends en charge dans l'état que les installations standards --
#---------------------------------------------------------------------
'''
Importation des modules"
'''
from setuphelpers import *
import subprocess
import time
'''
Déclarations des variables
'''
#---------------------------------------------------------------
#Variables pour le choix de l'installation portable, exe ou msi-
#---------------------------------------------------------------
'''
En fonction de l'application à installer, il faut mettre "True" à la place de "False".
exemple : Si je veux installer un exécultable je fait remplir les variables ci-dessous comme suit :
if_app_portable = False
if_app_exe = True
if_app_msi = False
'''
if_app_portable = False
if_app_exe = False
if_app_msi = False
#------------------------------------
#variables pour toutes les fonctions-
#------------------------------------
name_app ="" #metre le "nom du logiciel" présent dans l'onglet "inventaire logiciel" de la console wapt
target = r"" #Si la création d'un raccourci est nécessaire mettre le chemin complet menant au lenceur en .exe
label = name_app
#-------------------------------------------------------------------
#Variables pour les fonctions d'installation d'application portable-
#-------------------------------------------------------------------
folder_main_app_portable = "" #Mettre le chemin du dossier où l'application sera copier
folder_install_app_portable = os.path.join(folder_main_app_portable,name_app)
zipfn = "" #Mettre le nom de l'archive
#----------------------------------------------------------
#Variables pour les fonctions d'installation d'éxecutables-
#----------------------------------------------------------
exe = "" #Mettre le nom de l'installateur en .exe
min_version="" #Mettre le nom de la version du logiciel
#---------------------------------------------------
#Variables pour les fonctions d'installation de msi-
#---------------------------------------------------
msi = "" #Mettre le nom de l'installateur msi
cmd_install = f"msiexec /i {msi} /quiet"
'''
Déclarations des fonctions
'''
#------------------------------------------------------------
#Fonctions servant à l'installation d'applications portables-
#------------------------------------------------------------
#fonction servant à créer les dossiers d'installation
def create_folder_app_portable():
try:
try:
if not os.path.exists(folder_main_app_portable):
os.makedirs(folder_main_app_portable)
print(f"Le dossier {folder_main_app_portable} a été crée avec succès")
except Exception as e:
print(f"L'erreur 1.1 s'est produite : {e}")
try:
if not os.path.exists(folder_install_app_portable):
os.makedirs (folder_install_app_portable)
print(f"Le dossier {folder_install_app_portable} a été crée avec succès")
except Exception as e:
print(f"L'erreur 1.2 s'est produite : {e}")
except Exception as e:
print(f"L'erreur 1.3 s'est produite : {e}")
# fonction servant à installer une application portable
def install_app_portable():
try:
try:
create_folder_app_portable()
except Exception as e:
print(f"L'erreur 2.1 s'est produite : {e}")
try:
unzip(zipfn,target=folder_install_app_portable)
print(f"Le dossier {zipfn} a été décompressé avec succès")
except Exception as e:
print(f"L'erreur 2.2 s'est produite : {e}")
try:
create_desktop_shortcut(label,target)
print(f"Le raccourci {name_app} a été crée avec succès")
except Exception as e:
print(f"L'erreur 2.3 s'est produite : {e}")
print(f"L'application {name_app} a été installée avec susccès")
except Exception as e:
print(f"L'erreur 2.4 s'est produite : {e}")
#Fonction à désinstaller une application portable
def uninstall_app_portable():
try:
try:
if os.path.exists(folder_install_app_portable):
try:
remove_tree(folder_install_app_portable)
print(f"Le dossier {folder_install_app_portable} a été supprimé avec succès")
except Exception as e:
print(f"L'erreur 3.1 s'est produite : {e}")
try:
remove_desktop_shortcut(label)
print(f"Le raccourci {name_app} a été supprimé avec susccès")
except Exception as e:
print(f"L'erreur 3.2 s'est produite : {e}")
except Exception as e:
print(f"L'erreur s'est produite : {e}")
print(f"L'application {name_app} a été désinstallée avec succès")
except Exception as e:
print(f"L'erreur 3.3 s'est produite : {e}")
#---------------------------------------------------
#Fonctions servant à l'installation d'un éxecutable-
#---------------------------------------------------
# fonction qui permet d'installer un éxecutable
def install_app_exe():
try :
print(f"L'installation de {name_app} est en cours ...")
try:
install_exe_if_needed(exe,silentflags=getsilentflags(exe),key='',min_version=min_version)
print(f"L'application {name_app} a été installée avec succès")
except Exception as e :
print(f"L'erreur 4.1 s'est produite : {e}")
try:
# commenter la ligne ci-dessous avec un '#' si vous n'avez pas besoin de créer un raccourci
create_desktop_shortcut(label,target)
print(f"Le raccourci {label} a été créer avec succès")
except Exception as e :
print(f"L'erreur 4.2 s'est produite : {e}")
except Exception as e :
print(f"L'erreur 4.3 s'est produite : {e}")
# fonction qui permet de désinstaller un éxecutable
def uninstall_app_exe():
try:
for soft in installed_softwares():
if name_app in soft['name']:
try:
print(f"L'application {name_app} est déjà installée. Elle va être désinstallée. Merci de patienter ...")
subprocess.run(uninstall_cmd(soft['key']))
except Exception as e :
print(f"L'erreur 5.1 s'est produite : {e}")
try:
time.sleep(10) # temps nécessaire pour laisser le temps de la désinstallion complete pour certaines applications
print(f"L'application {name_app} a été désinstallée avec succès")
except Exception as e :
print(f"L'erreur 5.2 s'est produite : {e}")
try:
# commenter la ligne ci-dessous avec un '#' si vous n'avez pas besoin de supprimer un raccourci
remove_desktop_shortcut(label)
print(f"Le raccourci {label} a été supprimé avec succès")
except Exception as e :
print(f"L'erreur 5.3 s'est produite : {e}")
break
except Exception as e :
print(f"L'erreur 5.4 s'est produite : {e}")
#------------------------------------
#Fonction servant à installer un msi-
#------------------------------------
#fonction servant à désinstaller le programme msi
def uninstall_app_msi():
try:
for soft in installed_softwares(): # cherche dans l'inventaire logiciel
if name_app in soft['name']: #compare si le name_app existe dans l'invetaire logiciel
try:
uninstall_key = soft['key'] # récupére la clef de déinstallation
cmd_uninstall = f"msiexec /x{uninstall_key} /quiet" # commande de désinstallation (quiet est un argument pour désinstaller silencieusement)
print(f"La désinstallation de {name_app} commence...")
subprocess.run(cmd_uninstall,shell=True) #désinstaller le programme
print(f"L'application {name_app} a été désinstallée avec succès")
except Exception as e :
print(f"L'erreur 6.1 s'est produite : {e}")
try:
#si vous n'avez pas besoin de supprimer le raccourci, commentez la ligne ci-dessous avec un #
remove_desktop_shortcut(label) #supprime le raccourci
print(f"Le raccourci {label} a été supprimer avec succès")
except Exception as e :
print(f"L'erreur 6.2 s'est produite : {e}")
break
except Exception as e :
print(f"L'erreur 6.3 s'est produite : {e}")
#fonction servant à installer le programme msi
def install_app_msi():
try:
try:
print(f"L'installation de {name_app} commence ...")
subprocess.run(cmd_install,shell=True) #installe le programme
print(f"L'application {name_app} a été installée avec succès")
except Exception as e :
print(f"L'erreur 7.1 s'est produite : {e}")
try:
#si vous n'avez pas besoin de créer un raccourci, commentez la ligne ci-dessous avec un #
create_desktop_shortcut(label,target) # créer un raccourci
print(f"Le raccourci {label} a été crée avec succès")
except Exception as e :
print(f"L'erreur 7.2 s'est produite : {e}")
except Exception as e :
print(f"L'erreur 7.3 s'est produite : {e}")
#-------------------------------------------------------
# fonction servant à définir le choix de l'installation-
#-------------------------------------------------------
def choix_installation():
if if_app_portable :
uninstall_app_portable()
install_app_portable()
if if_app_exe :
uninstall_app_exe()
install_app_exe()
if if_app_msi :
uninstall_app_msi()
install_app_msi()
#-----------------------------------
#Fonction de désinstalation globale-
#-----------------------------------
def uninstall():
if if_app_portable:
uninstall_app_portable()
if if_app_exe :
uninstall_app_exe()
if if_app_msi :
uninstall_app_msi()
"""
Main code
"""
def install():
choix_installation()