greg@358: #!/usr/bin/env python greg@358: # -*- coding: utf-8 -*- greg@358: greg@358: # La première ligne doit commencer par #! et contenir python. greg@358: # Elle sera adaptée au système de destination automatiquement greg@358: greg@358: """ This is a part of Beremiz project. greg@358: greg@358: Post installation script for win32 system greg@358: greg@358: This script creat a shortcut for objdictedit.py in the desktop and the greg@358: start menu, and remove them at the uninstallation greg@358: greg@358: """ greg@358: greg@358: import os greg@358: import sys greg@358: greg@358: # Ce script sera aussi lancé lors de la désinstallation. greg@358: # Pour n'exécuter du code que lors de l'installation : greg@358: if sys.argv[1] == '-install': greg@358: # On récupère le dossier où mes fichiers seront installés (dossier où python est aussi installé sous windows) greg@358: python_path = sys.prefix greg@358: # On récupère le chemin de pythonw.exe (l'exécutable python qui n'affiche pas de console). greg@358: # Si vous voulez une console, remplacez pythonw.exe par python.exe greg@358: pyw_path = os.path.abspath(os.path.join(python_path, 'pythonw.exe')) greg@358: # On récupère le dossier coincoin greg@358: objdictedit_dir = os.path.abspath(os.path.join(python_path, 'LOLITech', 'CanFestival-3','objdictgen')) greg@358: ############################################################################ greg@358: #objdictedit_dir = os.path.abspath(os.path.join(python_path, 'share', \ greg@358: #'objdictedit')) greg@358: ############################################################################ greg@358: # On récupère les chemins de coincoin.py, et de coincoin.ico greg@358: # (Ben oui, l'icone est au format ico, oubliez le svg, ici on en est encore à la préhistoire. greg@358: # Heureusement que the GIMP sait faire la conversion !) greg@358: ico_path = os.path.join(objdictedit_dir, 'objdictedit.ico') greg@358: script_path = os.path.join(objdictedit_dir, 'objdictedit.py') greg@358: greg@358: # Création des raccourcis greg@358: # Pour chaque raccourci, on essaye de le faire pour tous les utilisateurs (Windows NT/2000/XP), greg@358: # sinon on le fait pour l'utilisateur courant (Windows 95/98/ME) greg@358: greg@358: # Raccourcis du bureau greg@358: # On essaye de trouver un bureau greg@358: try: greg@358: desktop_path = get_special_folder_path("CSIDL_COMMON_DESKTOPDIRECTORY") greg@358: except OSError: greg@358: desktop_path = get_special_folder_path("CSIDL_DESKTOPDIRECTORY") greg@358: greg@358: # On créé le raccourcis greg@358: create_shortcut(pyw_path, # programme à lancer greg@358: "Can Node Editor", # Description greg@358: os.path.join(desktop_path, 'objdictedit.lnk'), # fichier du raccourcis (gardez le .lnk) greg@358: script_path, # Argument (script python) greg@358: objdictedit_dir, # Dossier courant greg@358: ico_path # Fichier de l'icone greg@358: ) greg@358: # On va cafter au programme de désinstallation qu'on a fait un fichier, pour qu'il soit supprimé greg@358: # lors de la désinstallation greg@358: file_created(os.path.join(desktop_path, 'objdictedit.lnk')) greg@358: greg@358: # Raccourcis dans le menu démarrer (idem qu'avant) greg@358: try: greg@358: start_path = get_special_folder_path("CSIDL_COMMON_PROGRAMS") greg@358: except OSError: greg@358: start_path = get_special_folder_path("CSIDL_PROGRAMS") greg@358: greg@358: greg@358: greg@358: # Création du dossier dans le menu programme greg@358: programs_path = os.path.join(start_path, "LOLITech") greg@358: try : greg@358: os.mkdir(programs_path) greg@358: greg@358: except OSError: greg@358: greg@358: pass greg@358: directory_created(programs_path) greg@358: greg@358: create_shortcut(pyw_path, # Cible greg@358: "Can Node Editor", #Description greg@358: os.path.join(programs_path, 'objdictedit.lnk'), # Fichier greg@358: script_path, # Argument greg@358: objdictedit_dir, # Dossier de travail greg@358: ico_path # Icone greg@358: ) greg@358: file_created(os.path.join(programs_path, 'objdictedit.lnk')) greg@358: greg@358: # End (youpi-message) greg@358: # Ce message sera affiché (très) furtivement dans l'installateur. greg@358: # Vous pouvez vous en servir comme moyen de communication secret, c'est très in. greg@358: sys.stdout.write("Shortcuts created.") greg@358: # Fin du bidule greg@358: sys.exit()