#! /usr/bin/python
# -*- coding: utf-8 -*-

import os, sys, shutil
#import gettext, locale

####################################################################
# Installer EKD sur la machine (et ce en tant qu'administrateur)
####################################################################
def Installation_admin() :
	
	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 "INSTALLATION OU MISE A JOUR D'EKD POUR LINUX ..."
		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 sur le bureau (si rep. Desktop present)
		# * 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 u"* Création du répertoire /usr/share/ekd : OK"
	
		# Info sur la copie des reps. et fichiers dans /usr/share/ekd
		print u"* Copie des fichiers et répertoires dans /usr/share/ekd : OK"
	
		# Création de /usr/share/ekd et copie de tous les reps. et fichiers d'EKD dedans 
		copRepFich1=shutil.copytree(repCourISU, '/usr/share/ekd')
	
		# Changement des droits (des reps. --> drwxr-xr-x et fichiers --> rwxr-xr-x)
		# contenus dans /usr/share/ekd (en mode récursif)
		os.system('chmod -R 755 /usr/share/ekd')
	
		for lUt1 in os.listdir('/home'):
			# Si le repertoire Desktop est detecte ds le compte utilisateur ...
			if os.path.isdir('/home/'+lUt1+'/Desktop'):
				# Information du succes de la creation du raccourci (+ info sur le compte
				# utilisateur)
				print u"* Creation du raccourci sur le bureau pour l'éxécution d'EKD : OK"
                		print u"--> Dans le compte utilisateur %s" % lUt1
				# Ecriture (creation) du raccourci .
	        		ecrireRaccEKD=open('/home/'+lUt1+'/Desktop/ekd.desktop', 'w') 
	        		ecrireRaccEKD.write("[Desktop Entry]\nComment=Application de post-production (pour videos ou images)"+"\nExec='/usr/bin/ekd'\nGenericName=ekd\nIcon=/usr/share/ekd/icone_ekd.png\nName=ekd\nTerminal=true\nType=Application")
				ecrireRaccEKD.close()
	
		# Verification de la presence du fichier executable ekd dans /usr/bin
		if 'ekd' in os.listdir('/usr/bin'):
			print u"* Vérification de la présence de /usr/bin/ekd : OK"

	except:
		print
		print "-------------------------------------------------------------------"
		print "IL Y A UN PROBLEME !!!:"
		print "-------------------------------------------------------------------"
		print "VOUS AVEZ DU ELIMINER PAR ACCIDENT LE FICHIER /usr/bin/ekd, POUR"
		print "RESOUDRE CELA, REINSTALLEZ ... ET LE FICHIER SERA DE NOUVEAU"
		print "CREE."
		print "-------------------------------------------------------------------"
		print

	
# ---------------------------------------------------------------------------------	
def Desinstallation_admin():
	
	try :
		print "-------------------------------------------------------------------"
		print "DESINSTALLATION D'EKD ..."
		print "-------------------------------------------------------------------"
		
		# ------------------------------------------------------------------------
		# Elimination du raccourci (fichier) ekd.desktop 
		# ------------------------------------------------------------------------
		for lUt3 in os.listdir('/home'):
			# Si le repertoire Desktop est detecte ds le compte utilisateur ...
			if os.path.isdir('/home/'+lUt3+'/Desktop'):
				# Si le fichier /home/user/Desktop/ekd.desktop existe deja ...
				if os.path.isfile('/home/'+lUt3+'/Desktop/ekd.desktop') is True :
					# Tous les raccourcis sont elimines ds tous les comptes utilisateurs
					os.system('rm /home/'+lUt3+'/Desktop/ekd.desktop')
					print u"* Elimination du raccourci pour EKD : OK"
					print u"--> Dans le compte utilisateur %s" % lUt3
				else :
					print "* Elimination de /home/%s/Desktop/ekd.desktop :\n--> CE FICHIER N'EXISTE PAS OU A DEJA ETE ELIMINE !!!" % lUt3	
		
		# ------------------------------------------------------------------------
		# 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 "* Elimination du répertoire /usr/share/ekd : OK"
		else :
			print "* Elimination du répertoire /usr/share/ekd :\n--> CE REPERTOIRE N'EXISTE PAS OU A DEJA ETE ELIMINE !!!"

		# 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 "* Elimination du fichier /usr/bin/ekd : OK"
			os.remove('/usr/bin/ekd')
		else :
			print "* Elimination du fichier /usr/bin/ekd :\n--> CE FICHIER N'EXISTE PAS OU A DEJA ETE ELIMINE !!!"
		
		print "-------------------------------------------------------------------"
		print "DESINSTALLATION D'EKD REUSSIE !!!."
		print "-------------------------------------------------------------------"

	except:
		print "-------------------------------------------------------------------"
		print "IL Y A UN PROBLEME !!!."
		print "-------------------------------------------------------------------"
		
	
# ---------------------------------------------------------------------------------
# MENU PRINCIPAL DU SCRIPT 
# ---------------------------------------------------------------------------------	
print
print "==================================================================="
print "INSTALLATION/DESINSTALLATION D'EKD SUR LE DISQUE DUR"
print "==================================================================="
print u"* Tapez 1 sur le clavier pour installer ou faire une mise à jour"
print "-------------------------------------------------------------------"
print u"* Tapez 2 sur le clavier pour pour désinstaller"
print "-------------------------------------------------------------------"
print u"* Tapez 0 sur le clavier pour QUITTER sans rien faire"
print "-------------------------------------------------------------------"
choix = input(u"Quel est votre choix ; 1, 2 or 0 (?):")
if choix == 1 :
    Installation_admin()
elif choix == 2 :
    Desinstallation_admin()
elif choix == 0 :
    sys.exit()
print