websiteWebsite
ekd EKD
Logiciel de post-production pour vidéo, image et audio

 

Browse the code

Revision log Information on the revision
Revision: 79 (differences)
Author: ekd
Log message: gui_modules_image/divers/image_divers_pour_le_web.py

Changement d'une donnée pour la prévisualisation du résultat pour le cas de la non sélection de l'ombre portée.
Change revision:
#! /usr/bin/python
# -*- coding: utf-8 -*-
 
import os, sys, shutil, locale
 
 
####################################################################
# Script pour installer/mettre à jour/désisntaller EKD sur la 
# machine (et ce en tant qu'administrateur). Ce script a été crée 
# par Lama Angelo et est mis en GPL v3. Pour la licence référez-vous
# à l'entête contenu dans le fichier ekd_gui.py
####################################################################
# Installation/Mise à jour:
# -------------------------
# Pour installer EKD en mode administrateur, procédez comme suit:
# 1) Après avoir téléchargé ekd_linux_source_numéro-de-version_date-de-version.tar.gz,
# déposez l'archive dans votre /home/utilisateur et dé-tar-gzippez la --> tapez 
# dans la console: tar zxvf ekd_linux_source_numéro-de-version_date-de-version.tar.gz
# 2) Entrez dans le répertoire, tapez ce coup-ci dans la console:
# cd ekd_linux_source_numéro-de-version_date-de-version/
# 3) Installez maintenant en mode administrateur, on tape dans la console ...
# * Pour les distributions à base de sudo:
# sudo python install_ekd_linux_admin.py (entrez le mot de passe de 
# l'utilisateur administrateur)
# * Pour les distribution n'utilisant pas sudo:
# su (entrez le mot de l'administrateur)
# python install_ekd_linux_admin.py
# .... et suivez la procédure décrite à l'écran
# Désinstallation:
# ----------------
# 1) Allez de nouveau dans le répertoire d'EKD
# --> cd ekd_linux_source_numéro-de-version_date-de-version/
# 2) Tapez dans la console en mode administrateur, ...
# * Pour les distributions à base de sudo:
# sudo python install_ekd_linux_admin.py (entrez le mot de passe de 
# l'utilisateur administrateur)
# * Pour les distribution n'utilisant pas sudo:
# su (entrez le mot de l'administrateur)
# python install_ekd_linux_admin.py
# .... et suivez la procédure s'affichant à l'écran.
####################################################################
 
 
class InstDesinstEKD(object):
        def __init__(self):
                
                # Nom
                self.nom = 'EKD'
                # Version
                self.version = '2.0.8'
                # Version de la locale (fr pour langue française)
                self.langue = locale.getdefaultlocale()[0][:2]
                
                # Conditions pour la langue (et textes dans les variables)
                
                if self.langue == 'fr': # français
                        
                        # Menu
                        entete_1 = "INSTALLATION/MISE A JOUR/DESINSTALLATION D'%s \nEN VERSION %s POUR LINUX"
                        annonce_inst_maj = u"* Tapez 1 sur le clavier pour installer ou faire une mise à jour"
                        annonce_desinst = u"* Tapez 2 sur le clavier pour désinstaller"
                        annonce_quitter = u"* Tapez 0 sur le clavier pour QUITTER sans rien faire"
                        annonce_choix = u"Quel est votre choix ; 1, 2 or 0 (?):"
                        # Installation
                        self.inst_entete = "INSTALLATION OU MISE A JOUR D'%s POUR LINUX ..."
                        self.creat_rep_ekd = u"* Création du répertoire /usr/share/ekd: OK"
                        self.copie_fich_rep_ekd = u"* Copie des fichiers et répertoires dans /usr/share/ekd: OK"
                        self.verif_pres_exec_ekd = u"* Vérification de la présence de /usr/bin/ekd: OK"
                        self.racc_ekd = u"* Creation du raccourci pour l'éxécution de \n%s en version %s: OK"
                        self.inst_terminee = "INSTALLATION OU MISE A JOUR DE %s %s TERMINEE !."
                        self.inst_prob_1 = "IL Y A UN PROBLEME !!!:"
                        self.int_prob_2 = "VOUS AVEZ DU ELIMINER PAR ACCIDENT LE FICHIER /usr/bin/ekd,"
                        self.int_prob_3 = "POUR RESOUDRE CELA, REINSTALLEZ ... ET LE FICHIER SERA DE NOUVEAU"
                        self.int_prob_4 = "CREE."
                        # Désinstallation
                        self.desinst_entete = "DESINSTALLATION D'%s VERSION %s \nPOUR LINUX"
                        self.elimin_racc_1 = u"* Elimination du raccourci pour %s: OK"
                        self.elimin_racc_2 = u"* Elimination du fichier /usr/share/applications/ekd.desktop:\n--> CE FICHIER N'EXISTE PAS OU A DEJA ETE SUPPRIME !!!"
                        self.elimin_usr_share_ekd_1 = u"* Elimination du répertoire /usr/share/ekd: OK"
                        self.elimin_usr_share_ekd_2 = u"* Elimination du répertoire /usr/share/ekd:\n--> CE REPERTOIRE N'EXISTE PAS OU A DEJA ETE SUPPRIME !!!"
                        self.elimin_usr_bin_ekd_1 = u"* Elimination du fichier /usr/bin/ekd: OK"
                        self.elimin_usr_bin_ekd_2 = u"* Elimination du fichier /usr/bin/ekd:\n--> CE FICHIER N'EXISTE PAS OU A DEJA ETE SUPPRIME !!!"
                        self.desinst_terminee = "DESINSTALLATION D'%s %s TERMINEE !."
                        self.desinst_prob_1 = "IL Y A UN PROBLEME !!!."
                        
                elif self.langue == 'es': # espagnol
                        
                        # Menu
                        entete_1 = u"INSTALACIÓN/ACTUALIZACIÓN/ELIMINACIÓN DE %s \nEN VERSIÓN %s PARA LINUX"
                        annonce_inst_maj = u"* Pulse 1 en el teclado para instalar o hacer una actualización"
                        annonce_desinst = u"* Pulse 2 en el teclado para eliminar"
                        annonce_quitter = u"* Pulse 0 en el teclado para SALIR sin hacer nada"
                        annonce_choix = u"Seleccione 1, 2 or 0 :"
                        # Installation
                        self.inst_entete = u"INSTALACIÓN O ACTUALIZACIÓN DE %s PARA GNU/LINUX ..."
                        self.creat_rep_ekd = u"* Creación de la carpeta /usr/share/ekd: OK"
                        self.copie_fich_rep_ekd = u"* Copia de los ficheros y carpetas en /usr/share/ekd: OK"
                        self.verif_pres_exec_ekd = u"* Vérificación de la presencia de /usr/bin/ekd: OK"
                        self.racc_ekd = u"* Creación de un acceso directo para la ejecución de \n%s en versión %s: OK"
                        self.inst_terminee = u"INSTALACIÓN O ACTUALIZACIÓN DE %s %s TERMINADA !."
                        self.inst_prob_1 = u"HAY UN PROBLEMA !!!:"
                        self.int_prob_2 = u"HA ELIMINADO POR ERROR EL FICHERO /usr/bin/ekd,"
                        self.int_prob_3 = u"PARA RESOLVER ESO, REINICIE LA INSTALACIÓN ... Y"
                        self.int_prob_4 = u"EL FICHERO SERA CREADO DE NUEVO CREADO."
                        # Désinstallation
                        self.desinst_entete = u"ELIMINACIÓN DE %s VERSIÓN %s \nPARA GNU/LINUX"
                        self.elimin_racc_1 = u"* Eliminación del acceso directo para %s: OK"
                        self.elimin_racc_2 = u"* Eliminación del fichero /usr/share/applications/ekd.desktop:\n--> ESE FICHERO NO EXISTE O HA SIDO SUPRIMIDO"
                        self.elimin_usr_share_ekd_1 = u"* Eliminación de la carpeta /usr/share/ekd: OK"
                        self.elimin_usr_share_ekd_2 = u"* Eliminación de la carpeta /usr/share/ekd:\n--> ESTA CARPETA NO EXISTE O HA SIDO SUPRIMIDA"
                        self.elimin_usr_bin_ekd_1 = u"* Eliminación del fichero /usr/bin/ekd: OK"
                        self.elimin_usr_bin_ekd_2 = u"* Eliminación del fichero /usr/bin/ekd:\n--> ESE FICHERO NO EXISTE O HA SIDO SUPRIMIDO"
                        self.desinst_terminee = u"ELIMINACIÓN DE %s %s TERMINADA."
                        self.desinst_prob_1 = u"HAY UN PROBLEMA."
                        
                elif self.langue not in  ['fr', 'es']: # pour toutes les autres langues que fr et es, l'interface sera en english.
                        
                        # Menu
                        entete_1 = "%s INSTALLATION OR UPDATE\nVERSION %s FOR LINUX"
                        annonce_inst_maj = "* Enter 1 on your keyboard to install EKD or to make an update"
                        annonce_desinst = "* Enter 2 on your keyboard to disinstall"
                        annonce_quitter = "* Enter 0 on your keyboard to QUIT without do anything"
                        annonce_choix = "What's your choice ; 1, 2 or 0 (?):"
                        # Installation
                        self.inst_entete = "%s %s INSTALLATION/UPDATE FOR LINUX ..."
                        self.creat_rep_ekd = "* Creation of /usr/share/ekd repertory: OK"
                        self.copie_fich_rep_ekd = "* Files and repertories copy in /usr/share/ekd repertory: OK"
                        self.verif_pres_exec_ekd = "* Checking of the /usr/bin/ekd file presence: OK"
                        self.racc_ekd = "* Creation of a short cut for \n%s execution version %s: OK"
                        self.inst_terminee = "INSTALLATION (OR UPDATE) OF %s %s COMPLETED !!!."
                        self.inst_prob_1 = "THERE WAS A PROBLEM !!!:"
                        self.int_prob_2 = "YOU MIGHT ERASE BY ACCIDENT THE FILE /usr/bin/ekd,FOR RESOLVE"
                        self.int_prob_3 = "THIS PROBLEM START A NEW INSTALLATION, AND FOR CREATED AGAIN"
                        self.int_prob_4 = "THIS FILE."
                        # Désinstallation
                        self.desinst_entete = "%s %s DISINSTALLATION FOR LINUX"
                        self.elimin_racc_1 = "* %s shortcut eradication: OK"
                        self.elimin_racc_2 = "* Eradication of the /usr/share/applications/ekd.desktop file:\n--> THIS FILE DON'T EXIST OR HAS BEEN ERASED !!!"
                        self.elimin_usr_share_ekd_1 = "* Eradication of the /usr/share/ekd repertory: OK"
                        self.elimin_usr_share_ekd_2 = "* Eradication of the /usr/share/ekd repertory:\n--> THIS FILE DON'T EXIST OR HAS BEEN ERASED !!!"
                        self.elimin_usr_bin_ekd_1 = "* Eradication of the /usr/bin/ekd file: OK"
                        self.elimin_usr_bin_ekd_2 = "* Eradication of the /usr/bin/ekd file:\n--> THIS FILE DON'T EXIST OR HAS BEEN ERASED !!!"
                        self.desinst_terminee = "%s %s DISINSTALLATION COMPLETED !."
                        self.desinst_prob_1 = "THERE WAS A PROBLEM !!!."
                        
                # ---------------------------------------------------------------------------------
                # MENU PRINCIPAL DU SCRIPT 
                # ---------------------------------------------------------------------------------     
                print
                print "==================================================================="
                print entete_1 % (self.nom, self.version)
                print "==================================================================="
                print annonce_inst_maj
                print "-------------------------------------------------------------------"
                print annonce_desinst
                print "-------------------------------------------------------------------"
                print annonce_quitter
                print "-------------------------------------------------------------------"
                choix = input(annonce_choix)
                if choix == 1: self.installation_admin()
                elif choix == 2: self.desinstallation_admin()
                elif choix == 0: sys.exit()
                print
 
 
        def installation_admin(self) :
        
                try :
                        # Recup du chemin du rep.courant
                        repCourISU=os.getcwd()
        
                        # =====================================================================================
                        # Si EKD n'a jamais ete installe ... ou pour faire une mise à jour (2 en 1)
                        # =====================================================================================
                
                        print "-------------------------------------------------------------------"
                        print self.inst_entete % self.nom
                        print "-------------------------------------------------------------------"
 
                        # Ecriture du fichier executable dans /usr/bin (/usr/bin/ekd). 
                        # Il suffira de taper : ekd dans un terminal pour l'executer .
                        ecrireAppliInstEKD=open("/usr/bin/ekd", 'w') 
                        ecrireAppliInstEKD.write("# ------------------------------------------\n"+"# Ne pas eliminer ce fichier !!! ."+"\n# ------------------------------------------\n\ncd /usr/share/ekd && python ekd_gui.py")
                        ecrireAppliInstEKD.close()
        
                        # Changement des droits du fichier executable .
                        os.chmod('/usr/bin/ekd', 0755)
        
                        # -----------------------------------------------------------------------------
                        # * Supression du repertoire /usr/share/ekd (s'il existe)
                        # * Creation du rep. /usr/share/ekd ... et en meme temps ... copie (en dessous)
                        # * Copie de tous les reps. et fichiers d'EKD dans /usr/share/ekd
                        # * Modification des droits des reps. et fichiers dans /usr/share/ekd
                        # * Creation du raccourci dans Graphisme
                        # * Verification de la presence de /usr/bin/ekd
                        # -----------------------------------------------------------------------------
        
                        # Si le repertoire /usr/share/ekd existe deja ... supression de ce rep.
                        # ... car cela sert aussi bien que pour une install que pour une maj
                        if os.path.isdir('/usr/share/ekd') is True: 
                                os.system('rm -rf /usr/share/ekd')
                
                        # Information sur la creation du rep. /usr/share/ekd
                        print self.creat_rep_ekd
        
                        # Info sur la copie des reps. et fichiers dans /usr/share/ekd
                        print self.copie_fich_rep_ekd
        
                        # Création de /usr/share/ekd et copie de tous les reps. et fichiers d'EKD dedans 
                        copRepFich1=shutil.copytree(repCourISU, '/usr/share/ekd')
        
                        # Le fichier divx2pass.log doit être crée pendant
                        # l'install et il doit être en chmod 777 (-rwxrwxrwx)
                        os.system('touch /usr/share/ekd/divx2pass.log')
                        os.system('chmod 777 /usr/share/ekd/divx2pass.log')
                        # Attention ici le script de gestion des langues est lancé
                        os.system('python /usr/share/ekd/langues_inst_deb/gestion_des_langues_usr_share_ekd.py')
                
                        # Changement des droits du fichier executable (le script principal) 
                        # en rwxr-xr-x (755)
                        os.chmod('/usr/share/ekd/ekd_gui.py', 0755)
                
                        # Verification de la presence du fichier executable ekd dans /usr/bin
                        if 'ekd' in os.listdir('/usr/bin'):
                                print self.verif_pres_exec_ekd
                
                        # Ecriture du raccourci
                        ecrireRaccEKD=open('/usr/share/applications/ekd.desktop', 'w')
                        ecrireRaccEKD.write("[Desktop Entry]\nVersion=1.0\nEncoding=UTF-8\nName=%s\nGenericName=%s\nGenericName[fr]=%s\nComment=Post-production software four video or pictures\nComment[fr]=Application de post-production (pour videos ou images)\nExec='/usr/bin/ekd'\nIcon=/usr/share/ekd/icone_ekd.png\nTerminal=false\nMultipleArgs=false\nType=Application\nCategories=AudioVideo;AudioVideoEditing;\nStartupNotify=true" % (self.nom, self.nom, self.nom))
                        ecrireRaccEKD.close()
                
                        print self.racc_ekd % (self.nom, self.version)
                        
                        print "-------------------------------------------------------------------"
                        print self.inst_terminee % (self.nom, self.version)
                        print "-------------------------------------------------------------------"
 
                except:
                        print
                        print "-------------------------------------------------------------------"
                        print self.inst_prob_1
                        print "-------------------------------------------------------------------"
                        print self.int_prob_2
                        print self.int_prob_3
                        print self.int_prob_4
                        print "-------------------------------------------------------------------"
                        print
        
        
        # ---------------------------------------------------------------------------------     
        def desinstallation_admin(self):
        
                try :
                        print "-------------------------------------------------------------------"
                        print self.desinst_entete % (self.nom, self.version)
                        print "-------------------------------------------------------------------"
                
                        # ------------------------------------------------------------------------
                        # Elimination du raccourci (fichier) avchdvc.desktop 
                        # ------------------------------------------------------------------------
                        # Si le fichier /usr/share/applications/ekd.desktop existe il est 
                        # supprime, sinon il ne se passe rien et un message le precisant est affiche
                        if os.path.exists('/usr/share/applications/ekd.desktop') is True:
                                print self.elimin_racc_1 % self.nom
                                os.remove('/usr/share/applications/ekd.desktop')
                        else :
                                print self.elimin_racc_2
                
                        # ------------------------------------------------------------------------
                        # Elimination du repertoire /usr/share/ekd existe
                        # ------------------------------------------------------------------------
                        # Si le repertoire /usr/share/ekd existe deja ...
                        if os.path.isdir('/usr/share/ekd') is True:
                                os.system('rm -rf /usr/share/ekd')
                                print self.elimin_usr_share_ekd_1
                        else :
                                print self.elimin_usr_share_ekd_2
 
                        # Si le fichier /usr/bin/ekd existe il est supprime, sinon
                        # il ne se passe rien et un message le precisant est affiche
                        if os.path.exists('/usr/bin/ekd') is True:
                                print self.elimin_usr_bin_ekd_1
                                os.remove('/usr/bin/ekd')
                        else :
                                print self.elimin_usr_bin_ekd_2
                
                        print "-------------------------------------------------------------------"
                        print self.desinst_terminee % (self.nom, self.version)
                        print "-------------------------------------------------------------------"
 
                except:
                        print "-------------------------------------------------------------------"
                        print self.desinst_prob_1
                        print "-------------------------------------------------------------------"
 
 
# Appel de la classe
main = InstDesinstEKD()