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()