Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/01/2007, à 21:25

leck

easydepot --> pour ajouter des dépot facilement à votre sources.list

Voila je suis débutant en python (en programmation tout court).
Donc le code de ce script n'est pas trés propres et surement plein de fote d'hotaugraphe.
Mais je pense qui marche trés bien.
La liste des dépots et pas trés grande pour le moment.
Pour l'instant ce programme est en mode texte.
Je rajouterais surement des fonction et une interface en tkinter vu que mon script s'adresse au debutant.

Le fichier easydepot.py :

#!/usr/bin/python
# -*- coding:Utf-8 -*-
import time
import os

def sauvegarder(nom="sauvegardeasydepot", retour=0):
        date = time.strftime('%d-%m-%y_%H:%M_',time.localtime())
        nom_fichier = date + nom + "_sources.list"
        command = "cp /etc/apt/sources.list /etc/apt/" + nom_fichier
        if os.system(command) == 0:
                if retour==0:
                        return ("Sauvegarde réaliser avec succée sous le nom de " +  nom_fichier)
                else:
                        print "Sauvegarde réaliser avec succée sous le nom de " +  nom_fichier
                        return nom_fichier
        else :
                return ("Opération ratée")

def ajouterDepot(depotChoisit):
        teste = raw_input("Vous allez ajouter " + depotChoisit[0] + ". Tapez o pour continuer n pour annuler : ")
        if teste == 'o':
                if depotChoisit[2]!=0:
                        command = "wget -q " + depotChoisit[2] + " -O- | apt-key add -"
                        if os.system(command)==0:
                                print "Ajout de la clef reussit"
                        else :
                                return "Echec de l'ajout de la clef\nOperation abandonnée"
                else:
                        print "Aucune clef à rajouter"
                textefinal = "\n#" + depotChoisit[0] + "\n" + depotChoisit[1]
                command = "sudo su -c 'echo \"" + textefinal + "\" >> /etc/apt/sources.list'"
                if os.system(command)==0:
                        print "Ajout du dépot reussit"
                else:
                        return "Echec de l'ajout du dépot\nOperation abandonnée"
                os.system("sleep 4")
                if os.system("apt-get update")==0:
                        return "Update reussit"
                else:
                        return "Update raté"
        
        elif teste == 'n':
                return "opération annulée"
        else :
                return ajouterDepot(depotChoisit)
def choisirdepot():
        import depot
        listeDepot, i = depot.avoirListeDepot(), 0
        while i<len(listeDepot):
                print str(i) + "     " + listeDepot[i][0]
                i += 1
        choix = input("Tapez le nombre du depot que vous souhaitez ajouter a votre sources.list : ")
        if 0<=choix<len(listeDepot):
                return ajouterDepot(listeDepot[choix])
        else :
                return choisirdepot()

def restaurer(choix):
        teste = raw_input("Vous allez restaurer " + choix + ". Tapez o pour continuer n pour annuler : ")
        if teste == 'o':
                zocasou = sauvegarder(nom="sauvegardeasydepotCASSER", retour=1)
                if zocasou == "Opération ratée":
                        return "Abandon pour des raizons de securiter car sauvegarde de la sources.list actuelle impossible"
                os.system("rm /etc/apt/sources.list")
                command = "cp " + choix + " /etc/apt/sources.list"
                if os.system(command)==0:
                        print "Restauration de la sources.list reussit"
                else :
                        command = "mv /etc/apt/" + zocasou + "/etc/apt/sources.list"
                        if os.system(command)==0:
                                print "sources.list actuelle preserver" 
                        return "Operation ratée"
                os.system("sleep 4")
                if os.system("apt-get update")==0:
                        return "Update reussit"
                else:
                        return "Update raté"
        
        elif teste == 'n':
                return "opération annulée"
        else:
                return restaurer(choix)        

def choisirRestaurer():
        import glob
        listeSauvegarde, i = [], 0
        for nomsauv in glob.glob(r'/etc/apt/*sauvegardeasydepot*'):
                listeSauvegarde.append(nomsauv)
        while i<len(listeSauvegarde):
                print str(i) + "        " + listeSauvegarde[i]
                i += 1
        choix = input("Tapez le nombre de la sauvegarde que vous souhaitez restaurer : ")
        if 0<=choix<len(listeSauvegarde) :
                return restaurer(listeSauvegarde[choix])
        else:
                return choisirRestaurer()
        
def menu():
        print """##################################################################
!       Auteur : <\----[  §  ''|'' ® 0 |< ¥  ]----/>             !
!       License : Gnu license                                    !
!       Dépendance : python, apt-get, ubuntu edgy                !
!       Necessite droit administration (sudo)                    !
!                                                                !
! Tapez 1 pour sauvegarder votre sources.list(recommander)       !
! Tapez 2 pour rajouter des dépots à votre sources.list          !
! Tapez 3 pour restaurer une sources.list                        !
!                                                                !
!                                                                !
!                                                                !
!                                                                !
!                                                                !
##################################################################"""
        choose = raw_input("\nTapez le nombre de votre choix ou q pour quitter le programme: ")
        if choose == "1":
                print sauvegarder()
        elif choose == "2":
                print choisirdepot()
        elif choose == "3":
                print choisirRestaurer()
        elif choose == "q":
                print "Opération annulée"
        else :
                menu()
menu()

et le fichier depot.py :

def avoirListeDepot():
        #liste de depot pour le logiciel easydepot
        listeDepot = []

        #depot medibuntu
        nom = "medibuntu"
        adresseDepot = """deb http://medibuntu.sos-sts.com/repo/ edgy free non-free
deb-src http://medibuntu.sos-sts.com/repo/ edgy free non-free"""
        adresseKey = "http://medibuntu.sos-sts.com/repo/medibuntu-key.gpg"
        listeDepot.append([nom, adresseDepot, adresseKey])

        #depot commercial
        nom = "commercial par canonical"
        adresseDepot = "deb http://archive.canonical.com/ubuntu edgy-commercial main"
        adresseKey = 0
        listeDepot.append([nom, adresseDepot, adresseKey])

        #depot Backports
        nom = "Backports"
        adresseDepot = """#//FR
deb http://fr.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
deb-src http://fr.archive.ubuntu.com/ubuntu edgy-backports main restricted universe multiverse
#//International
deb http://archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu edgy-backports main restricted universe multiverse"""
        adresseKey = 0
        listeDepot.append([nom, adresseDepot, adresseKey])

        #depot Mental-PPC
        nom = "Mental-PPC"
        adresseDepot = """deb http://mental-ppc.tuxfamily.org/dists edgy-mppc all
deb-src http://mental-ppc.tuxfamily.org/dists edgy-mppc all"""
        adresseKey = "http://mental-ppc.tuxfamily.org/dists/817D0754.gpg"
        listeDepot.append([nom, adresseDepot, adresseKey])

        #depot Skype
        nom = "Skype(depot debian officiel)"
        adresseDepot = "deb http://download.skype.com/linux/repos/debian/ stable non-free"
        adresseKey = 0
        listeDepot.append([nom, adresseDepot, adresseKey])

        #depot asher 256
        nom = "Asher 256"
        adresseDepot = """deb http://asher256-repository.tuxfamily.org edgy main dupdate french
deb http://asher256-repository.tuxfamily.org ubuntu main dupdate french"""
        adresseKey = 0
        listeDepot.append([nom, adresseDepot, adresseKey])

        #depot Universe et Multiverse
        nom = "Universe et Multiverse"
        adresseDepot = """deb http://fr.archive.ubuntu.com/ubuntu/ edgy universe multiverse
deb-src http://fr.archive.ubuntu.com/ubuntu edgy universe multiverse
#//International
deb http://archive.ubuntu.com/ubuntu/ edgy universe multiverse
deb-src http://archive.ubuntu.com/ubuntu edgy universe multiverse
#//FR
deb http://fr.archive.ubuntu.com/ubuntu/ edgy-updates universe multiverse
deb-src http://fr.archive.ubuntu.com/ubuntu edgy-updates universe multiverse
#//International
deb http://archive.ubuntu.com/ubuntu/ edgy-updates universe multiverse
deb-src http://archive.ubuntu.com/ubuntu edgy-updates universe multiverse
#//FR
deb http://fr.archive.ubuntu.com/ubuntu/ edgy-security universe multiverse
deb-src http://fr.archive.ubuntu.com/ubuntu edgy-security universe multiverse
#//International
deb http://archive.ubuntu.com/ubuntu/ edgy-security universe multiverse
deb-src http://archive.ubuntu.com/ubuntu edgy-security universe multiverse"""
        adresseKey = 0
        listeDepot.append([nom, adresseDepot, adresseKey])

        #depot officiel
        nom ="Depot officiel ubuntu"
        adresseDepot = """#//FR
deb http://fr.archive.ubuntu.com/ubuntu/ edgy main restricted
deb-src http://fr.archive.ubuntu.com/ubuntu edgy main restricted
#//International
deb http://archive.ubuntu.com/ubuntu/ edgy main restricted
deb-src http://archive.ubuntu.com/ubuntu edgy main restricted
#//FR
deb http://fr.archive.ubuntu.com/ubuntu/ edgy-updates main restricted
deb-src http://fr.archive.ubuntu.com/ubuntu edgy-updates main restricted
#//International
deb http://archive.ubuntu.com/ubuntu/ edgy-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu edgy-updates main restricted
#//FR
deb http://fr.archive.ubuntu.com/ubuntu/ edgy-security main restricted
deb-src http://fr.archive.ubuntu.com/ubuntu edgy-security main restricted
#//International
deb http://archive.ubuntu.com/ubuntu/ edgy-security main restricted
deb-src http://archive.ubuntu.com/ubuntu edgy-security main restricted"""
        adresseKey = 0
        listeDepot.append([nom, adresseDepot, adresseKey])

        #depot kubuntu
        nom = "kubuntu depot"
        adresseDepot = """#Kubuntu Packages
deb http://kubuntu.org/packages/koffice-latest/ edgy main
deb-src http://kubuntu.org/packages/koffice-latest/ edgy main 
deb http://kubuntu.org/packages/kde-latest/ edgy main
deb-src http://kubuntu.org/packages/kde-latest/ edgy main 
deb http://kubuntu.org/packages/amarok-latest/ edgy main
deb-src http://kubuntu.org/packages/amarok-latest/ edgy main"""
        adresseKey = 0
        listeDepot.append([nom, adresseDepot, adresseKey])







        #envoy de la liste
        return listeDepot

je rapelle que ce programme et en aucun cas finit. Je poste sur le forum pour savoir ce que pensent les autres de mon idée
et surtout pour savoir si on peut rajouter d'autre dépot dans depot.py qui serait important

Hors ligne

#2 Le 08/01/2007, à 17:28

leck

Re : easydepot --> pour ajouter des dépot facilement à votre sources.list

si quelqun pourait me donner des idées de dépot ??

Hors ligne

#3 Le 08/01/2007, à 20:27

Yaen

Re : easydepot --> pour ajouter des dépot facilement à votre sources.list

http://doc.ubuntu-fr.org/depots lol:lol:


Je joue à HL2, CSS, Stalker... avec mon pingouin d'amour.

Hors ligne

#4 Le 09/01/2007, à 14:47

leck

Re : easydepot --> pour ajouter des dépot facilement à votre sources.list

Je sait mais il existe d'autre depot que ceux de cette liste autrement que penser vous de mon idée ??

Hors ligne

#5 Le 22/01/2007, à 23:59

msxmsx

Re : easydepot --> pour ajouter des dépot facilement à votre sources.list

tres bonne idee je ne peux que t'encourager;)

Hors ligne

#6 Le 23/01/2007, à 00:06

did

Re : easydepot --> pour ajouter des dépot facilement à votre sources.list

Bonsoir,

Au risque de passer pour un rabat-joie, je ne peux que déconseiller ce genre d'application, d'autant plus si c'est pour installer tout un tas de dépôts, autres que les dépôts officiels.
C'est le genre de truc, qui entre les main d'un débutant, te met en l'air un système en trois mise-à-jour chronos, exactement comme Automatix ou EasyUbuntu.

Je pense que ce genre d'outils peut-être très utile dans un cadre personnel, mais dès qu'il s'agit d'en généraliser l'usage, je dis : danger.

Enfin, ce n'est que mon avis,

Bonne continuation.

Dernière modification par did (Le 23/01/2007, à 12:13)

Hors ligne

#7 Le 23/01/2007, à 10:30

GarulfoLinux

Re : easydepot --> pour ajouter des dépot facilement à votre sources.list

je suis un peu du même avis que did surtout que c'est aussi rapide d'ouvrir un éditeur en root, puis le sources.list et d'allé sur le wiki pour copier les dépots tongue.


Ressources sur Linux pour les débutants : http://www.guidelinux.org
Cours sur Gambas : http://gnulinux.rf.lv

Hors ligne

#8 Le 23/01/2007, à 10:55

Gras_du_Bide

Re : easydepot --> pour ajouter des dépot facilement à votre sources.list

... Et qu'on peut déjà faire tout ça graphiquement (!) via:

Synaptic>Menu Catégories>Dépôts>Onglet Tierces parties>Bouton "+ Ajouter"

GdB

Dernière modification par Gras_du_Bide (Le 23/01/2007, à 10:56)

Hors ligne

#9 Le 23/01/2007, à 11:10

DoK

Re : easydepot --> pour ajouter des dépot facilement à votre sources.list

bonne initiative.

Hors ligne

#10 Le 28/02/2007, à 19:52

leck

Re : easydepot --> pour ajouter des dépot facilement à votre sources.list

euh oais bon au total sa sert pas à grand chose bref mais bon j'ai fait surtout pour apprendre à coder et diffuser mon idée pour qu'elle soit repris (si elle etais bonne) je suis trop debutant en programmation pour la finir jusqu'au bou

Hors ligne

#11 Le 01/06/2014, à 14:29

eagle08

Re : easydepot --> pour ajouter des dépot facilement à votre sources.list

Il te serait tres utile de passer tes commentaires et ton code au correcteur d’orthographe, le problème n'étant pas que tu fasses des fautes mais d'avoir la gentillesse de les corriger avant de poster;
En effet, les posts de programmation deviennent des documents techniques utilisés par la communauté; la moindre des courtoisies serait de ne pas utiliser un langage familier, voire SMS en programmation ou dans tes commentaires, ou de considérer les fautes d'orthographe comme un dommage cool-latéral, un mal nécessaire que doivent subir tes lecteurs!
En négligeant l'orthographe, tu envoies le message suivant:
" je suis un petit geek qui programme <<à l'arrache>> sur un coin de table et ça suffira pour les gens qui vont me lire; ils liront bien entre les lignes...
inutile de se forcer à faire en sorte que mon message soit lisible..."
En fait, en agissant de la sorte, tu considères ton travail comme de la merde bien suffisante pour la communauté qui va te lire!...

Ce message a été passé a la moulinette orthographique pendant 30 secondes chrono!.... CQFD!

Hors ligne