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.

#601 Le 05/08/2009, à 17:36

Fenouille84

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

@ The_Tito
Merci pour l'astuce wink (mais je crois avoir trouvé plus simple !)

Donc voici le fameux script ! Il devrait me permettre de rechercher des fichiers (normalement... hmm)

#!/bin/bash
# Version Interface graphique
# Ce script permet de rechercher un fichier dans le dossier voulu.

# Crée une fonction (pas forcément utile) pour vérifier si le script s'est exécuté correctement.
function erreur {
if [ "$PIPESTATUS" != "0" ]
then
    zenity --error --title="Attention" --text="Une erreur est survenue"
    exit 100;
else
    zenity --info --title="Information" --text="Le script s'est exécuté sans soucis"
clear
exit 0;
fi
}

clear
# Variable pour demander le fichier à rechercher.
FILE=`zenity --entry --title="Recherche" --text="Nom du fichier à rechercher :"`

# Variable pour demander le répertoire de recherche.
DIR=`zenity --file-selection --directory --title="Choix du répertoire de recherche"`

# Variable affichant l'emplacement des fichiers trouvés.
EMP=`find "$DIR" -iname "$FILE"`

# Variable affichant le type des fichiers trouvés.
TYPE=`file "$FILE"`

# Se place dans le dossier voulu pour la recherche.
cd /$DIR

# Affiche les résultats de la recherche.
zenity --list \
  --width=700 \
  --title="Résultats" \
  --text="Répertoire de recherche : "$DIR" " \
  --column="Emplacement des fichiers trouvés" --column="Type de fichiers" \
  "$EMP" "$TYPE"

erreur
exit 0

J'ai un soucis avec le type de fichier. Je ne vois pas comment faire pour, une fois le fichier trouvé, aller dans son répertoire et retourner le type de fichier. Actuellement, il trouve le fichier mais j'ai une erreur de répertoire !! Donc impossible d'utiliser la commande file...

J'ai un deuxième soucis : ce script me permet de trouver le fichier grâce au nom exact que je rentre au tout début. Par exemple, si j'entre "openoffice" il va chercher "openoffice" et donc occulter "openoffice-base" ou encore "openoffice-data" etc... Je pense que je dois modifier mon script et mettre une "*" dans le nom de recherche, mais je n'y arrive pas !!

Si quelqu'un a une idée... Je suis preneur pour tester !! Bon courage et merci wink

Dernière modification par Fenouille84 (Le 05/08/2009, à 17:37)


Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --

Hors ligne

#602 Le 05/08/2009, à 18:39

AnsuzPeorth-out

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bjr,
Un truc du genre:

find "$DIR" -iname "*$FILE*" -exec file {} \; | sed 's/:/\n/' | zenity --list --column un --column deux

Hors ligne

#603 Le 05/08/2009, à 19:38

Fenouille84

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

"AnzusPeorth-out" ou "comment rendre fonctionnel et simplifier un script" !!
Un grand merci pour ta commande, sa fonctionne smile Elle résout mes 2 problèmes : casse et type de fichier !!

Bravo wink

EDIT : J'ai ajouter une fonction de recherche de dossier au script. Voici sa version finale (améliorations possibles ??)

#!/bin/bash
# Version Interface graphique
# Ce script permet de faire une recherche (fichier ou dossier) dans un répertoire donné.

clear

# Demande si l'on veut rechercher un fichier ou un dossier.
c1="Fichier"
c2="Dossier"

dep0=`zenity --list --title "Ajouter ou supprimer" --text "Voulez-vous ajouter ou supprimer une tache ?" --radiolist --column=Choix --column "Ajout-Suppresion" TRUE "$c1" FALSE "$c2"` || exit

c3=$dep0


if [ "$c3" = "$c1" ] # L'utilisateur décide de rechercher un fichier.
then
{
# Variable pour demander le fichier à rechercher.
FILE=`zenity --entry --title="Recherche" --text="Nom du fichier à rechercher :"`

# Variable pour demander le répertoire de recherche.
DIR=`zenity --file-selection --directory --title="Choix du répertoire de recherche"`

# Variable de recherche + Affichage des résultats.
find "$DIR" -iname "*$FILE*" -exec file {} \; | sed 's/:/\n/' | zenity --title="Recherche" --width=900 --height=500 --text="Résultats de la recherche" --list --column="Fichiers trouvés" --column="Type de fichiers"
}

else # L'utilisateur décide de rechercher un dossier.
{
# Variable pour demander le nom du dossier à rechercher.
REP=`zenity --entry --title="Recherche" --text="Nom du dossier à rechercher :"`

# Variable pour demander le répertoire de recherche.
DIR=`zenity --file-selection --directory --title="Choix du répertoire de recherche"`

# Variable pour la fonction de recherche.
RECHERCHE=`find "$DIR" -iname "*$REP*"`

# Affiche les résultats de la recherche.
zenity --list \
  --width=900 --height=500 \
  --title="Résultats" \
  --text="Répertoire de recherche : "$DIR" " \
  --column="Dossiers trouvés" \
  "$RECHERCHE"
}

fi

exit 0

Dernière modification par Fenouille84 (Le 05/08/2009, à 20:26)


Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --

Hors ligne

#604 Le 05/08/2009, à 21:36

AnsuzPeorth-out

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Si tu veux t'amuser, regarde du coté de gtkdialog au lieu de zenity, cela evitera la suite de boites de dialogues (tu fera une seule boite pour tout traiter, c'est plus zoli smile).
Ne prends pas peur, gtkdialog est aussi simple que zenity, faut juste s'y mettre (il y a beaucoup d'exemples et d'aide dans la section programmation)

Hors ligne

#605 Le 06/08/2009, à 01:31

Shrat

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Euh sinon vous auriez par hasard un moyen de récupérer le nom d'un volume, un peu de la même manière que sous Gnome avec la petite icone sur le bureau.

Hors ligne

#606 Le 06/08/2009, à 01:50

AnsuzPeorth-out

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bjr,
Dans le fstab ou le mtab tu peux récupérer ces infos (dans /etc).

EDIT:tu voulais peut etre la commande smile (vite fait)
Si les volumes sont montées dans /media:

grep media /etc/mtab | cut -d " " -f2 | cut -d "/" -f3

ou simplement

ls /media

Dernière modification par AnsuzPeorth-out (Le 06/08/2009, à 11:11)

Hors ligne

#607 Le 06/08/2009, à 11:22

Shrat

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Hum je ne veux pas les sda et tout le tintouin, je veux le nom du volume, comme celui qu'on récupère avec volname pour les cd.

Hors ligne

#608 Le 06/08/2009, à 11:28

AnsuzPeorth-out

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

quel volume tu veux, ceux montés dans media ? Sinon, les commandes proposées t'afficheront juste les noms des volumes (ceux choisi par l'user au montage).
Si tu veux d'autres volumes montés, utilise egrep pour multi selection dans mtab (a toi de voir ceux que tu veux)

Dernière modification par AnsuzPeorth-out (Le 06/08/2009, à 11:29)

Hors ligne

#609 Le 06/08/2009, à 13:53

Shrat

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

En fait on se comprend mal.

Ce qu'il faudrait, c'est que je récupère le nom du volume tel qu'il est inscrit dans les premiers bits du volume. Je ne veux pas avoir le nom des points de montage.

Pour te donner le contexte,  j'essaie de faire un logiciel qui indexe les CD, disque durs, etc...

Hors ligne

#610 Le 07/08/2009, à 14:11

draco31.fr

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Shrat a écrit :

En fait on se comprend mal.

Ce qu'il faudrait, c'est que je récupère le nom du volume tel qu'il est inscrit dans les premiers bits du volume. Je ne veux pas avoir le nom des points de montage.

Pour te donner le contexte,  j'essaie de faire un logiciel qui indexe les CD, disque durs, etc...

Il me semble que vol_id fait ça.
Par contre, je ne sais pas si ça fonctionne aussi sur les CD et partitions FAT32 / NTFS.

Hors ligne

#611 Le 07/08/2009, à 15:50

Shrat

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Exactement ce que je voulais!

Dommage que cela soit dépendant de udev mais je ne pense pas que je trouverais mieux.

Merci beaucoup!

EDIT : Pour info ca fonctionne avec les CD!

Dernière modification par Shrat (Le 07/08/2009, à 15:52)

Hors ligne

#612 Le 11/08/2009, à 00:17

thisirs

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

draco31.fr a écrit :
thisirs a écrit :
IFS='
'

Pour fixer l'IFS à un retour chariot, tu peux utiliser la notation :

IFS=$'\n'

Sinon, c'est simple mais efficace !

faut juste veiller à utiliser cette notation uniquement avec bash...
Avec sh, ça fait des résultats inattendus!
Dédicace (moi compris) à ceux qui ont utilisé IFS=$'\n' avec un #!/usr/bin/env sh, ça fait du gros caca....;)

Hors ligne

#613 Le 11/08/2009, à 08:59

draco31.fr

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Arf ! Désolé, mais chez moi je n'utilise que bash !
Comme je trouve la notation $'\n' plus "lisible" que sur 2 lignes, je me suis pas posé de questions !
Cela dit, je n'ai rien trouvé dans le man au sujet de la notation $'...', j'espère que ça ne sera pas modifié dans des versions supérieurs.

Hors ligne

#614 Le 13/08/2009, à 08:20

kimlai

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour a  tous,

Alors voila , j'ai cherché pendant un moment comment faire une mosaïque des fenêtres actives (sur metacity), j'ai essayé tile mais il foutait le bordel dans mes widgets.. Du coup j'ai ecrit un script bash qui le fait avec wmctrl, mais je me demande s'il existe pas un soft qui le ferait mieux (j'espère pas être trop hors topic).
Si quelqu'un est intéressé par le script je peux le poster mais il faudra d'abord que je fasse quelques modifs pour pouvoir le porter sur d'autres machines que la mienne.

Aussi si quelqu'un sait restaurer des fenêtres en ligne de commande, je prend...

Hors ligne

#615 Le 24/08/2009, à 19:00

Mattorre

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour, utilisant iTunes sous windows pour gérer ma bibliothèque de musique et utilisant Rhythmbox pour la lire sous ubuntu, j'etais frustré de ne pas pouvoir importer ma bibliothèque iTunes sur Rhythmbox.  J'ai ainsi créé un script perl permettant d'importer les playlists (Pas la bibliothèque) de iTunes vers Rhythmbox.

ItunesRhyth.pl :

#!/usr/bin/perl
# # Script fait par  
# # Mattorre
# # Permet d'importer la playlist d'iTunes dans rhythmbox

# Vérification du nombre de paramètres
$syntaxe="[Usage : ./ItunesRhyth.pl iTunes\ Music\ Library.xml fichierTemp.xml playlists.xml]";
$nbarg = scalar( @ARGV );
if ($nbarg != 3) {die "$syntaxe\n";}

# Renommage des paramètres
($entree,$sortieTemp, $sortie)=@ARGV;

# Vérification de l'existence ou non des fichiers
if (! -e $entree )
{die "[Le fichier d'entrée $entree n'existe pas]\n";}
if (-e $sortieTemp )
{die "[Le fichier d'entrée $sortieTemp existe déjà]\n";}
if (! -e $entree )
{die "[Le fichier d'entrée $sortie n'existe pas]\n";}

# Variable permettant de stocker le chemin dans l'environnement Windows
$cheminWindows = "D:/Musique/iTunes/iTunes%20Music/";
# Variable permettant de stocker le chemin dans l'environnement Linux
$cheminLinux = "/home/mattorre/Musique/iTunes/iTunes%20Music/";

## Premier remplissage de "SORTIETEMP" : Copie de ENTREE dans SORTIETEMP en ne conservant sur une ligne que les lignes ID et Localisation jusqu'a BIBLIOTHÈQUE

    # Ouverture des fichiers
    open(ENTREE, "<$entree")|| die "[Ouverture fichier $entree impossible]";
    open(SORTIETEMP, ">$sortieTemp")|| die "[Ouverture fichier $sortieTemp impossible]";

    # Initialisation de la variable permettant de stopper la copie des la detection de "<key>Name</key><string>BIBLIOTHÈQUE</string>"
    $test = 0;

    # Tant qu'il y a des lignes dans "ENTREE" et tant qu'il n'y a pas detection de "<key>Name</key><string>BIBLIOTHÈQUE</string>"
    while($ligne = <ENTREE> and $test == 0)
    {
        SWITCH:
        {
            # Si detection de l'ID
            if ($ligne =~ /(<key>Track ID<)\/key><integer>([^<]*)<\/integer>/){
                # Ecrire dans le fichier SORTIETEMP "<key>Track ID<'ID'"
                print SORTIETEMP $1;
                print SORTIETEMP $2;
                last SWITCH;
            }
            # Si detection de "BIBLIOTHÈQUE"
            if ($ligne =~ /^\t\t\t<key>Name<\/key><string>BIBLIOTHÈQUE<\/string>/){
                # Passage de la variable test a 1 permettant de sortir de la boucle tant que
                $test = 1;
                last SWITCH;
            }
            # Si detection de la Localisation
            if ($ligne =~ /(<key>Location<)\/key><string>file:\/\/localhost\/([^<]*<)\/string>/){
                # Ecrire dans le fichier SORTIETEMP "<key>Location<'Location'<"
                print SORTIETEMP $1;
                print SORTIETEMP $2;
                # Insertion de 2 lignes vide
                print SORTIETEMP "\n\n\n";
                last SWITCH;
            }
        }
        
    }

    # Fermeture des fichiers
    close(ENTREE)|| die "[Fermeture fichier $entree impossible]";
    close(SORTIETEMP)|| die "[Fermeture fichier $sortieTemp impossible]";

## Fin premier remplissage de "SORTIETEMP"

## Remplissage du tableau associatif avec comme clef l'ID et comme valeur la Localisation

    # Ouverture des fichiers
    open(SORTIETEMP, "<$sortieTemp")|| die "[Ouverture fichier $sortieTemp impossible]";

    # Initialisation du tableau associatif
    %channel1;

    # variables temporaires
    $temp1;
    $temp2;

    # Tant qu'il y a des lignes dans "SORTIETEMP"
    while($ligne = <SORTIETEMP>)
    {
        # Si detection de l'ID et de la Localisation
        if ($ligne =~ /^<key>Track ID<([^<]*)<key>Location<([^<]*)</){
            # Sauvegarde de l'ID dans temp1
            $temp1 = $1;
            # Sauvegarde de la Localisation dans temp1
            $temp2 = $2;
            # Modification du chemin entre Windows et Linux
            #$temp2 =~ s/D:(.*)/<location>file:\/\/\/home\/mattorre$1<\/location>/; #/
            $temp2 =~ s/$cheminWindows(.*)/<location>file:\/\/$cheminLinux$1<\/location>/; #/            
            # Remplissage du tableau: Clef = ID ,Valeur = Localisation
            $channel1{$temp1}=$temp2;
        }

    }

    # Fermeture des fichiers
    close(SORTIETEMP)|| die "[Fermeture fichier $sortieTemp impossible]";

## Fin Remplissage tableau associatif

## Deuxieme remplissage de "SORTIETEMP" grace au tableau associatif et au fichier "ENTREE". Mise en forme du fichier compatible avec la playlist Rhythmbox 

    # Ouverture des fichiers
    open(ENTREE, "<$entree")|| die "[Ouverture fichier $entree impossible]";
    open(SORTIETEMP, ">$sortieTemp")|| die "[Ouverture fichier $sortieTemp impossible]"; #Vide le fichier SORTIETEMP

# Copie dans "SORTIETEMP" du debut d'un fichier playlist Rhythmbox
sub Entete {

return <<FIN_ENTETE
<?xml version="1.0"?>
<rhythmdb-playlists>
  <playlist name="Liste d'attente" type="queue"/>
  <playlist name="Mon top" type="automatic" sort-key="Rating" sort-direction="1">
    <conjunction>
      <equals prop="type">song</equals>
      <subquery>
        <conjunction>
          <greater prop="rating">4.000000</greater>
        </conjunction>
      </subquery>
    </conjunction>
  </playlist>
  <playlist name="R&#xE9;cemment ajout&#xE9;" type="automatic" sort-key="FirstSeen" sort-direction="1">
    <conjunction>
      <equals prop="type">song</equals>
      <subquery>
        <conjunction>
          <current-time-within prop="first-seen">604800</current-time-within>
        </conjunction>
      </subquery>
    </conjunction>
  </playlist>
  <playlist name="R&#xE9;cemment lu" type="automatic" sort-key="LastPlayed" sort-direction="1">
    <conjunction>
      <equals prop="type">song</equals>
      <subquery>
        <conjunction>
          <current-time-within prop="last-played">604800</current-time-within>
        </conjunction>
      </subquery>
    </conjunction>
  </playlist>
FIN_ENTETE
}

print SORTIETEMP Entete;

    # Initialisation de la variable test a 0 permettant de commencer la copie a partir de "<key>Playlists</key>"
    $test = 0;

    # Tant qu'il y a des lignes dans "ENTREE" et que tant qu'il n'y a pas detection de "<key>Playlists</key>"
    while($ligne = <ENTREE> and $test == 0)
    {
        # Si detection de "Playlists"
        if ($ligne =~ /<key>Playlists<\/key>/ ){
            # Passage de la variable a 1 permettant de sortir du tant que
            $test = 1;
        }        
    }
    
    # Initialisation de la variable test a 0 permettant de placer une balise "</playlist>" avant "<playlist name="..." type="static">;" sauf la premiere fois
    $test = 0;
    
    # Tant qu'il y a des lignes dans "ENTREE"
    while($ligne = <ENTREE>)
    {
        SWITCH:
        {
            # Si detection de "Name"
            if ($ligne =~ /<key>Name<\/key><string>([^<]*)<\/string>/){
                # Sauvegarde du Nom dans la variable temp1
                $temp1 = $1;
                # Si test == 1 (CAD toujours sauf pour la premiere detection de "Name")
                if ($test == 1){
                # Ecriture de la balise "</playlist>"
                print SORTIETEMP "  <\/playlist>\n";
                }
                # Ecriture de "  <playlist name="'Nom'" type="static">"
                print SORTIETEMP "  <playlist name=\"";
                print SORTIETEMP $temp1;
                print SORTIETEMP "\" type=\"static\">";
                print SORTIETEMP "\n";
                # Passage de la variable test a 1
                $test = 1 ;
                last SWITCH;
            }
            # Si detection de "Track ID"
            if ($ligne =~ /<key>Track ID<\/key><integer>([^<]*)<\/integer>/){
                # Sauvegarde de l'ID dans temp1
                $temp1 = $1;
                # Ecriture de "    <location>"Valeur correspondant a la clef ID"</location>"
                print SORTIETEMP "    ";
                print SORTIETEMP $channel1{$temp1};
                print SORTIETEMP "\n";
                last SWITCH;
            }
        }
    }
    
# Copie dans SORTIETEMP de la fin d'un fichier playlist Rhythmbox
sub Enqueue {

return <<FIN_queue
  </playlist>
</rhythmdb-playlists>
FIN_queue
}

print SORTIETEMP Enqueue;

    # Fermeture des fichiers
    close(ENTREE)|| die "[Fermeture fichier $entree impossible]";
    close(SORTIETEMP)|| die "[Fermeture fichier $sortieTemp impossible]";

## Fin deuxieme remplissage de "SORTIETEMP"
    
## Remplissage de SORTIE avec SORTIETEMP (en cours) en enlevant certaines playlists (Bibliotheque, musique, films, series TV, Podcast, Livre audio, Achats, itunes DJ, Genius)

    # Ouverture des fichiers
    open(SORTIETEMP, "<$sortieTemp")|| die "[Ouverture fichier $sortieTemp impossible]";
    open(SORTIE, ">$sortie")|| die "[Ouverture fichier $sortie impossible]";
    
    # Initialisation de la variable a 0 permettant de savoir si on doit copier ou pas les "<location>..."
    $test = 0;

    # Tant qu'il y a des lignes dans "SORTIETEMP"
    while($ligne = <SORTIETEMP>)
    {    
        # Si on est dans le cas de la copie
        if ($test == 0){
            SWITCH:
            {
                # Si name="BIBLIOTHÈQUE" passage de la variable test a 1
                #(cad pour supprimer la playlist correspondante au name)
                # Commenter les 4 lignes si vous voulez conserver la playliste correspondant au name
                if ($ligne =~ /<playlist name="BIBLIOTHÈQUE" type="static">/){
                    $test = 1;
                    last SWITCH;
                }
                # Si name="Musique" passage de la variable test a 1
                if ($ligne =~ /<playlist name="Musique" type="static">/){
                    $test = 1;
                    last SWITCH;
                }
                # Si name="Films" passage de la variable test a 1)
                if ($ligne =~ /<playlist name="Films" type="static">/){
                    $test = 1;
                    last SWITCH;
                }
                # Si name="Séries TV" passage de la variable test a 1
                if ($ligne =~ /<playlist name="Séries TV" type="static">/){
                    $test = 1;
                    last SWITCH;
                }
                # Si name="Podcasts" passage de la variable test a 1
                if ($ligne =~ /<playlist name="Podcasts" type="static">/){
                    $test = 1;
                    last SWITCH;
                }
                # Si name="Livres audio" passage de la variable test a 1
                if ($ligne =~ /<playlist name="Livres audio" type="static">/){
                    $test = 1;
                    last SWITCH;
                }
                # Si name="Achats" passage de la variable test a 1
                if ($ligne =~ /<playlist name="Achats" type="static">/){
                    $test = 1;
                    last SWITCH;
                }
                # Si name="iTunes DJ" passage de la variable test a 1
                if ($ligne =~ /<playlist name="iTunes DJ" type="static">/){
                    $test = 1;
                    last SWITCH;
                }
                # Si name="Genius" passage de la variable test a 1
                if ($ligne =~ /<playlist name="Genius" type="static">/){
                    $test = 1;
                    last SWITCH;
                }
            # Sinon copie de la ligne dans SORTIE
            print SORTIE $ligne;
            }
        }
        # Si test != 0 (CAD il faut enleve la playliste)
        else
        {
            # Si detection de "localisation", on ne copie pas la ligne
            if ($ligne =~ /<location>/){
            }
            # Si detection de "\playlist", on ne copie pas la ligne
            if ($ligne =~ /<\/playlist>/){
                # On passe la variable test a 0 (On a finit de supprimer la playlist)
                $test = 0;    
            }
        }
    
    }
    
    # Fermeture des fichiers
    close(SORTIETEMP)|| die "[Fermeture fichier $sortieTemp impossible]";
    close(SORTIE)|| die "[Fermeture fichier $sortie impossible]";

## Fin remplissage de SORTIE
    
## Suppression du fichier "fichierTemp.xml"

    unlink './fichierTemp.xml';
    
## fin script

Petite explication pour l'utiliser:

- Importez votre bibliothèque de morceau iTunes dans Rhythmbox
  ->Edition -> Préférence -> Musique -> Les fichiers musicaux sont placés dans [mettre le chemin] (pour moi file:///home/mattorre/Musique/iTunes/iTunes Music)

- Laissez Rhythmbox travailler

- Fermez Rhythmbox

- Allez dans le dossier de la bibliothèque iTunes et copiez le fichier "iTunes Music Library.xml"

- Collez le dans "$HOME/.local/share/rhythmbox/"

- Copiez le code de mon script dans un nouveau fichier dans le même dossier (CAD "$HOME/.local/share/rhythmbox/") et nommez le "ItunesRhyth.pl"

- Éditez le fichier et changez les 2 variables ligne 23 et 25 par vos 2 chemins

- Dans le terminal tapez:

cd $HOME/.local/share/rhythmbox/
chmod +x ItunesRhyth.pl
./ItunesRhyth.pl iTunes\ Music\ Library.xml fichierTemp.xml playlists.xml
rm iTunes\ Music\ Library.xml

- Ensuite ouvrez Rhythmbox, attentez quelques secondes et voila sa marche (enfin normalement tongue)


J'ai fait un petit script Bash à lancer au demarrage qui fait automatiquement la mise à jour de la playlist

#!/bin/bash

cd $HOME/.local/share/rhythmbox/

cp $HOME/Musique/iTunes/iTunes\ Music\ Library.xml iTunes\ Music\ Library.xml

./ItunesRhyth.pl iTunes\ Music\ Library.xml fichierTemp.xml playlists.xml

rm iTunes\ Music\ Library.xml

exit 0
done

Vous pouvez aussi personnaliser l'importation en commentant certaines lignes de la ligne 240 à 283


Cooler Master Cosmos RC-1000, Corsair CMPSU-650TX, Intel Core 2 Duo E8400 (2x3 GHz), LG Flatron W2452T, Corsair Dominato - 2 x 2 Go DDR2 PC 8500,  SAMSUNG Spin Point F1 2 x 500 Go (Raid 0), SAMSUNG Spin Point F1 1To, ATI Radeon HD4850 (CrossFire), Enceinte Inspire T7700, Logitech Illuminated & VX Revolution, Windows Seven 64bit & Ubuntu 9.04 64bit

Hors ligne

#616 Le 26/08/2009, à 21:29

Aurelien69

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Mémo pour Séries

Je poste mon petit script de "mémo pour séries", que j'ai fait pour me mettre à gtkdialog.

C'est un peu une amélioration de celui proposé y a plus de un an par Mathieu11 :
http://forum.ubuntu-fr.org/viewtopic.ph … 7#p1660467

Mon script est un peu moins envahissant je trouve puisqu'il enregistre les séries à l'intérieur même du script, et permet d'entrer de nouvelles séries sans changer le script lui même. Y a juste à le lancer, et il test même si gtkdialog est installé ou pas cool (j'ai un peu pompé sur d'autres scripts pour ça tongue).

Le script :

#!/bin/bash
#________________________________________________________________ 
#                                                                #
#   Programme permettant la gestion des séries visualisées       #
#________________________________________________________________#
# par Aurlien69
# Nécessite "gtkdialog"


# Retour à la ligne marquant la fin d'une variable
IFS='
'

# Chemin et nom du script actuel
script=$0
NOM_script=${0/$PWD\//}

# Test l'installation de "gtkdialog"
INSTALL=`which gtkdialog`
if [ -z "$INSTALL" ]; then
	echo "\"gtkdialog\" nécessaire pour lancer ce script"
	INSTALL=`which zenity`
	if [ -n "$INSTALL" ]; then
		zenity --error --timeout=60 --title="$NOM_script" --text="<big><span color=\"red\">Gtkdialog</span> n'est pas installé !!!</big>\n\nCe programme nécessite l'installation de \"gtkgialog\" pour pouvoir fonctionner."
	fi
	exit
fi

# Fonction contenant le programme afin de pouvoir le relancer
function programme_entier()
{

# Récupération de l'empacement des données
ligne_deb=`grep -nh '^#####SAUVEGARDE_DES_DONNEES#####$' "$script"`
ligne_fin=`wc -l "$script"`
ligne_deb=$(( ${ligne_deb%\:*} + 1 ))
ligne_fin=${ligne_fin:0:`expr index "$ligne_fin" ' '`}

# On récupère les données, que l'on tri
donnees=`sed -n -e "$ligne_deb,$ligne_fin s/^#//gp" "$script" | sort | tr -d '
'`

# Si il n'y a pas de données (première utilisation)
if [ -z "$donnees" ]; then
	var=0
	FENETRE=""

# Si il y a déjà des séries sauvegardées
else
	# Le dièse délimite les variables
	IFS='#'

	# Données placées dans des tableaux
	var=1
	for exp in $donnees
	do
		variable[$var]=$exp
		var=$((var+1))
	done

	#Nombre de données dans le tableau
	nbr_tabl=$((var-1))

	# Génération de la fenêtre
		var=1
		FENETRE="<frame Séries en cours ><hbox><entry has_frame=\"false\"><width>280</width><height>20</height><variable>variable["
		while [ $var -lt $nbr_tabl ]
		do
			if [ $(( $var % 3 )) != 0 ]
				then	
					FENETRE=""$FENETRE$var"]</variable><default>"${variable[$var]}"</default></entry><entry has_frame=\"false\"><width>65</width><height>20</height><variable>variable["
				else
					FENETRE=""$FENETRE$var"]</variable><default>"${variable[$var]}"</default></entry></hbox><hbox><entry has_frame=\"false\"><width>280</width><height>20</height><variable>variable["
			fi
			var=$((var+1))
		done
		FENETRE=""$FENETRE$var"]</variable><default>"${variable[$var]}"</default></entry></hbox></frame>"
fi

export COMMANDE="<window resizable=\"false\" title=\"$NOM_script\">
	<vbox>
		<frame Ajouter une série>
			<hbox>
				<entry>
					<variable>variable["$((var+1))"]</variable>
					<default>Série...</default>
					<width>250</width><height>30</height>
				</entry>
				<entry>
					<variable>variable["$((var+2))"]</variable>
					<default>Saison...</default>
					<width>70</width><height>30</height>
				</entry>
				<entry>
					<variable>variable["$((var+3))"]</variable>
					<default>Episode...</default>
					<width>70</width><height>30</height>
				</entry>
				<button><input file icon=\"gtk-refresh\"></input><action>exit:actu</action></button>
			</hbox>
		</frame>
		"$FENETRE"
		<hbox>
			<button ok></button>
			<button cancel></button>
		</hbox>
	</vbox>
</window>"

# On lance gtkdialog pour récupérer les variables
eval `gtkdialog --program COMMANDE`

# On redéfini le retour à la ligne marquant la fin d'une variable
IFS='
'

# On définit une variable contenant un retour à la ligne
new_ligne='
'

# Si on as décidé de valider ou d'ajouter une entrée
if [ $EXIT = "OK" ] || [ $EXIT = "actu" ]; then

	# On sauvegarde le nombre d'entrées
	total_var=$((var+3))
	var=1

	# Variable qui va accueillir les données
	SAUVEGARDE=""

	# Mise en forme des variables pour les sauvegarder
	while [ $var -lt $((total_var+1)) ]
	do
		if [ -n "${variable[$var]}" ] && [ "${variable[$var]}" != "Série..." ]; then
			if [ -z "${variable[$((var+1))]}" ]; then
				variable[$((var+1))]="Saison..."
			fi
			if [ -z "${variable[$((var+2))]}" ]; then
				variable[$((var+2))]="Episode..."
			fi
			# Suppression des "#" s'il y en as
			variable[$var]=${variable[$var]//#/ }
			variable[$((var+1))]=${variable[$((var+1))]//#/ }
			variable[$((var+2))]=${variable[$((var+2))]//#/ }
			# On met les données à la suite, séparées par des "#"
			SAUVEGARDE="$SAUVEGARDE#${variable[$var]}#${variable[$((var+1))]}#${variable[$((var+2))]}#$new_ligne"
		fi
		var=$((var+3))
	done

	# Suppression des données sauvegardées
	sed -i "$ligne_deb,$ligne_fin d" "$script"

	# On rajoute les données à la fin du script
	echo "$SAUVEGARDE" >> "$script"

	# Si on as rajouté une entrée on actualise la page
	if [ $EXIT = "actu" ]; then
		programme_entier
	fi
fi

# On quitte le programme
exit

}

programme_entier

#####SAUVEGARDE_DES_DONNEES#####

Dépendances : Gtkdialog


Copiez le tel-quel dans un fichier qu'on rend exécutable. (le "#####SAUVEGARDE_DES_DONNEES#####" est à laisser à la fin, puisque il sert à délimiter où les séries seront sauvegardées)

J'écoute toutes remarques

Et si quelqu'un sait comment rajouter un ascenseur sur le coté d'une "frame" en gtkdialog, qu'il n'hésite pas!!
Car j'aimerai bien limiter la taille de la fenetre à une certaine dimension, afin de palier le fait qu'un trop grand nombre de séries différentes donne une fenètre trop grande. (sinon j'ai prévu de générer des onglets pour si il y a trop de séries, ce qui à l'air d'être possible en gtkdialog, mais j'vai galérer je sens roll)

Dernière modification par Aurelien69 (Le 29/08/2009, à 12:58)


Le jour où Microsoft inventera quelque chose qui ne plante pas, ce sera un clou.

Hors ligne

#617 Le 27/08/2009, à 08:57

redisded

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Aurelien69 a écrit :

Et si quelqu'un sait comment rajouter un ascenseur sur le coté d'une "frame" en gtkdialog, qu'il n'hésite pas!!
Car j'aimerai bien limiter la taille de la fenetre à une certaine dimension, afin de palier le fait qu'un trop grand nombre de séries différentes donne une fenètre trop grande. (sinon j'ai prévu de générer des onglets pour si il y a trop de séries, ce qui à l'air d'être possible en gtkdialog, mais j'vai galérer je sens roll)

Bonjour,
un texte inséré dans une balise tree devrait normalement automatiquement ajouter un ascenceur en cas de besoin.
Cordialement,
redisded.

Hors ligne

#618 Le 27/08/2009, à 09:43

Aurelien69

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Merci redisded,

apparemment la balise tree est bien la seule à proposer un ascenseur, mais pour mon script je vais devoir passer par des onglets après mûre réflexion.
La balise tree ne permet pas de modifier le texte, et dans mon script toutes les séries doivent être facilement modifiables (pour être mis à jour par l'utilisateur), et sont donc dans des balises "entry".
Étant donné que toutes mes "entry" sont dans une "frame", il aurait été plus commode d'avoir un ascenceur pour cette frame.
Tes propos semblent confirmer que ce n'est pas possible avec une balise "frame" hmm

cordialement

Dernière modification par Aurelien69 (Le 27/08/2009, à 09:44)


Le jour où Microsoft inventera quelque chose qui ne plante pas, ce sera un clou.

Hors ligne

#619 Le 01/09/2009, à 15:50

loke

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour

je suis a la recherche d'un scripte me permettant de transformé tous les dossiers contenu dans un dossier racine en archive .rar pour chaque dossiers.

Quelqu'un a un scripte en tête ou le temps dans faire un sa me simplifiais grandement la tache roll

Hors ligne

#620 Le 01/09/2009, à 15:59

pabix

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

loke :

ls -d répertoire_racine/* | cat | while read i ; do rar a "$i.rar" "$i"; done

Non testé mais devrait marcher (le | cat | est là pour supprimer la couleur et mettre ligne par ligne)

Si tu veux que ça supprime les répertoires, fais comme ça :

ls -d répertoire_racine/* | cat | while read i ; do rar a "$i.rar" "$i" && rm -rf "$i"; done

Dernière modification par pabix (Le 01/09/2009, à 16:01)


Utilisateur du clavier BÉPO.
mortgat (()) gmail () com
GPG 0x377D716D

Hors ligne

#621 Le 01/09/2009, à 18:00

loke

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

parfait merci padix s'est possible de le transformait en nautilus-scripts ?

Hors ligne

#622 Le 01/09/2009, à 20:07

draco31.fr

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

pabix a écrit :

loke :

ls -d répertoire_racine/* | cat | while read i ; do rar a "$i.rar" "$i"; done

Non testé mais devrait marcher (le | cat | est là pour supprimer la couleur et mettre ligne par ligne)

Si tu veux que ça supprime les répertoires, fais comme ça :

ls -d répertoire_racine/* | cat | while read i ; do rar a "$i.rar" "$i" && rm -rf "$i"; done

Attention, les fichiers seront également listé et compactés en fichier rar !
Je ne pense pas non plus que le cat soit nécessaire.
Pour n'avoir que les dossiers, il est possible de faire :

cd répertoire_racine/
find * -maxdepth 0 -type d -exec rar a "{}.rar" "{}" \;

Hors ligne

#623 Le 01/09/2009, à 20:31

loke

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

draco31.fr a écrit :
ls -d répertoire_racine/* | cat | while read i ; do rar a "$i.rar" "$i"; done

celui-la me va très bien mais j'aimerai le mettre sous forme de nautilus-scripts pour évité

ls -d répertoire_racine/*

Hors ligne

#624 Le 02/09/2009, à 00:10

draco31.fr

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Je n'ai pas testé mais le code ci-dessous devrait fonctionner :

#!/bin/bash
IFS=$'\n'
echo "Sélection : $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
    ls -d $file/* | cat | while read i ; do rar a "$i.rar" "$i"; done
done
exit 0

Attention, il faut sélectionner le dossier contenant les dossiers à compresser.

Sinon, tu as cette variante : Là il faut selectionner directement les éléments à compresser

#!/bin/bash
IFS=$'\n'
echo "Sélection : $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
    rar a "$file.rar" "$file"
done
exit 0

Hors ligne

#625 Le 02/09/2009, à 00:21

informaticous

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Alors un petit script pour installer des logiciel. Si vous savez m'aider pour agrandir le choix sa serait cool.
voici ce qu'il faut metre dans un terminal

wget http://les7140.fr.nf/source/install.sh
chmod +x install.sh 
./install.sh

je vous met le code du fichier install.sh

#!/bin/bash

#################################
###       informaticous       ###
### script installation v 0.2 ###
### informaticous@hotmail.com ###
#################################


#####################
## debut du script ##
#####################

## on verifie un minimum de depandance
gksudo apt-get install xterm
gksudo "xterm -e apt-get install -y --force-yes mplayer"
## un peut de musique pdt l'installaton ça fais pas de mal
xterm -e "mplayer http://sd-1.archive-host.com/membres/up/1641316640/01-Megamix.ogg"&
gksudo 'xterm -e 'apt-get install aptitude''

#####################
##      exit       ##
#####################

exit_2 () {
		zenity --question --title="Partir" --text="Ete vous sur de voiloir quitter"
		case "$?" in
		1 )  $avancement;;
		0 ) partir ;;
		-1 ) echo "ereur inconu";;
		* ) echo "ereur inconu";;
		esac
}
partir () {
	killall mplayer 
	exit 3
}		
exit_1 () {
		case "$EXIT" in
		gtk-quit) exit_2 ;;
		exit) exit_2 ;;
		* ) ;;
		esac
}

#####################
##    Variable     ##
#####################

install () {
	app=$(aptitude search -F "%c" "^$apps$"  | sed 's/ //g')
    case "$app" in
    i)  ;;
    *)  xterm -e gksudo "apt-get -f -y --force-yes install $apps";;
    esac
}

prog_2 () {
	let "p = 100 / i"
if [ $xcfa = "true" ]
then
        let "t += p"
		apps=xcfa
		install
		echo $t
		fi
if [ $audacity = "true" ]
then
        let "t += p"
		
		apps=audacity
		install
		echo $t
		fi
if [ $songbird = "true" ]
then
        let "t += p"
		apps=songbird
		install
		echo $t
		fi
if [ $vlc = "true" ]
then
        let "t += p"
		apps=vlc
		install
		echo $t
		fi
if [ $aciderip = "true" ]
then
        let "t = t + p"
		apps=aciderip
		install
		echo $t
		fi
echo 100
}

prog () {
if [ $xcfa = "true" ]
then
       	let "i = i + 1"
fi
if [ $audacity = "true" ]
then
       	let "i = i + 1"
fi
if [ $songbird = "true" ]
then
        let "i += 1"
fi
if [ $vlc = "true" ]
then
       	let "i += 1"
fi
if [ $aciderip = "true" ]
then
        let "i += 1"
fi
echo $i
}
#####################
##   les fenetre   ##
#####################

# fenetre de presentation
export DIALOG='
<window title="installation" window_position="3" decorated="false">
<vbox>
	<vbox spacing="10">
		<menubar>
		<menu>
		<menuitem stock="gtk-quit">
		<action>EXIT:gtk-quit</action>
		</menuitem>
		<menuitem>
		<label>"Arreter la musique"</label>
		<action>killall mplayer</action>
		</menuitem>
		<menuitem stock="gtk-about">
		<action>EXIT:gtk-quit</action>
		</menuitem>
		<label>Menu</label>
		</menu>
		</menubar>
		<frame>
	<text wrap-mode="2">
<label>"Bonjour et bienvenue dans l installation de vos programmes.
A la prochaine fenêtre vous aurez le choix entre la version de ubuntu que vous avez.

Merci d avoir choisi ce script et bonne installation"</label>
<width>350</width><height>50</height>
	</text>
	</frame>
</vbox>
	<hbox>
		<button>
		<input file icon="gtk-quit"></input>    
		<label>exit</label>
		</button>
		<button>
		<input file icon="gtk-go-forward-rtl"></input>    
		<label>précédant</label>
		<visible>disabled</visible>
		</button>
		<button>
		<label>suivant</label>
		<input file icon="gtk-go-forward-ltr"></input> 
		<action type="exit">suivant</action>
		</button>
		</hbox> 
</vbox>
</window>
'
# fenetre de version ubuntu
export DIALOG_2='
<window title="installation" window_position="3" decorated="false">
<vbox>
<vbox spacing="10">
		<menubar>
		<menu>
		<menuitem stock="gtk-quit">
		<action>EXIT:gtk-quit</action>
		</menuitem>
		<menuitem>
		<label>"Arreter la musique"</label>
		<action>killall mplayer</action>
		</menuitem>
		<menuitem stock="gtk-about">
		<action>echo test</action>
		</menuitem>
		<label>Menu</label>
		</menu>
		</menubar>
</vbox>
<frame>
	<text wrap-mode="2">
<label>"Si vous avez la dernier version de ubuntu cest jaunthy."</label>
<width>350</width><height>50</height>
	</text>
	</frame>
<hbox>
<button>
<label>Intrepid 8.10</label>
<action type="exit">intrepid</action>
</button>
<button>
<label>Jaunty 9.04</label>
<action type="exit">jaunty</action>
</button>
<button>
<label>Karmic 9.10</label>
<action type="exit">karmic</action>
</button>
</hbox> 
</vbox>
</window>
'

## recupilatif de ubunut maj depot plus maj ubuntu
export DIALOG_3='
<window title="installation" window_position="3" decorated="false">
<vbox>
	<vbox spacing="10">
		<menubar>
		<menu>
		<menuitem stock="gtk-quit">
		<action>EXIT:gtk-quit</action>
		</menuitem>
		<menuitem>
		<label>"Arreter la musique"</label>
		<action>killall mplayer</action>
		</menuitem>
		<menuitem stock="gtk-about">
		<action>EXIT:gtk-quit</action>
		</menuitem>
		<label>Menu</label>
		</menu>
		</menubar>
		<frame>
	<text wrap-mode="2">
<label>"Voici les tache avant de pouvoir installer les programe :
- Mise a jours de depot
- Ajout des cles ditendification des depot
- Mise a jours de ubuntu"</label>
<width>350</width><height>50</height>
	</text>
	</frame>
</vbox>
	<hbox>
		<button>
		<input file icon="gtk-quit"></input>    
		<label>exit</label>
		</button>
		<button>
		<input file icon="gtk-go-forward-rtl"></input>    
		<label>précédant</label>
		<visible>disabled</visible>
		</button>
		<button>
		<label>suivant</label>
		<input file icon="gtk-go-forward-ltr"></input> 
		<action type="exit">suivant</action>
		</button>
		</hbox> 
</vbox>
</window>
'
# choix logiciel a installer
export DIALOG_4='
<window title="installation" window_position="3" decorated="false">
<vbox>
<vbox spacing="10">
		<menubar>
		<menu>
		<menuitem stock="gtk-quit">
		<action>EXIT:gtk-quit</action>
		</menuitem>
		<menuitem>
		<label>"Arreter la musique"</label>
		<action>killall mplayer</action>
		</menuitem>
		<menuitem stock="gtk-about">
		<action>echo test</action>
		</menuitem>
		<label>Menu</label>
		</menu>
		</menubar>
</vbox>
<frame audio>
  <checkbox>
    <variable>xcfa</variable>
    <label>xcfa utilitaire qui permet l encodage des cd de musique et aussi la conversion de fichier audio</label>
  </checkbox>
  <checkbox>
    <variable>audacity</variable>
    <label>audacity utilitaire pour l édition de musique</label>
  </checkbox>
  <checkbox>
    <variable>songbird</variable>
    <label>Songbird lecteur audio du projet Mozilla</label>
  </checkbox>
 </frame>
 <frame video>
  <checkbox>
    <variable>vlc</variable>
    <label>vlc permet de lire la pus part des vidéo il a pour qualité d être léger</label>
  </checkbox>
    <checkbox>
    <variable>aciderip</variable>
    <label>aciderip il permet de sauvegarde vos dvd sur le disque dur dans le format divx</label>
  </checkbox>
    </frame>
	<hbox>
		<button>
		<input file icon="gtk-quit"></input>    
		<label>exit</label>
		</button>
		<button>
		<input file icon="gtk-go-forward-rtl"></input>    
		<label>précédant</label>
		<visible>disabled</visible>
		</button>
		<button>
		<label>suivant</label>
		<input file icon="gtk-go-forward-ltr"></input>
		<action type="exit">suivant</action>
		</button>
		</hbox> 
</vbox>
</window>'

# restaurer le source list

export DIALOG_5='
<window title="installation" window_position="3" decorated="false">
<vbox>
<vbox spacing="10">
		<menubar>
		<menu>
		<menuitem stock="gtk-quit">
		<action>EXIT:gtk-quit</action>
		</menuitem>
		<menuitem>
		<label>"Arreter la musique"</label>
		<action>killall mplayer</action>
		</menuitem>
		<menuitem stock="gtk-about">
		<action>echo test</action>
		</menuitem>
		<label>Menu</label>
		</menu>
		</menubar>
</vbox>
<vbox>
<hbox>
<frame>
	<text wrap-mode="2">
<label>"Si vous ne savez pas quoi choisir cliquer sur laiser le source.list"</label>
<width>350</width><height>50</height>
	</text>
	</frame>
</hbox>
<hbox>
<button>
<variable>restaurer</variable>
<label>restaurer source.lis</label>
<action type="exit">oui</action>
</button>
<button>
<variable>laisser</variable>
<label>laisser le source.lis</label>
<action type="exit">non</action>
</button>
</hbox> 
</vbox>
</vbox>
</window>
'
# fenetre de presentation
export DIALOG_6='
<window title="installation" window_position="3" decorated="false">
<vbox>
	<vbox spacing="10">
		<menubar>
		<menu>
		<menuitem stock="gtk-quit">
		<action>EXIT:gtk-quit</action>
		</menuitem>
		<menuitem>
		<label>"Arreter la musique"</label>
		<action>killall mplayer</action>
		</menuitem>
		<menuitem stock="gtk-about">
		<action>EXIT:gtk-quit</action>
		</menuitem>
		<label>Menu</label>
		</menu>
		</menubar>
		<frame>
	<text wrap-mode="2">
<label>"Maintenant on vas netoyer pour garder votre systeme propre"</label>
<width>350</width><height>50</height>
	</text>
	</frame>
</vbox>
	<hbox>
		<button>
		<input file icon="gtk-quit"></input>    
		<label>exit</label>
		</button>
		<button>
		<input file icon="gtk-go-forward-rtl"></input>    
		<label>précédant</label>
		<visible>disabled</visible>
		</button>
		<button>
		<label>suivant</label>
		<input file icon="gtk-go-forward-ltr"></input> 
		<action type="exit">suivant</action>
		</button>
		</hbox> 
</vbox>
</window>
'
#quitter
export DIALOG_7='
<window title="installation" window_position="3" decorated="false">
<vbox>
	<vbox spacing="10">
		<menubar>
		<menu>
		<menuitem stock="gtk-quit">
		<action>EXIT:gtk-quit</action>
		</menuitem>
		<menuitem>
		<label>"Arreter la musique"</label>
		<action>killall mplayer</action>
		</menuitem>
		<menuitem stock="gtk-about">
		<action>EXIT:gtk-quit</action>
		</menuitem>
		<label>Menu</label>
		</menu>
		</menubar>
		<frame>
	<text wrap-mode="2">
<label>"Félicitation les programe sont correctement installer, il est recommandre de redémare pour que tout soit pris en comte."</label>
<width>350</width><height>50</height>
	</text>
	</frame>
</vbox>
	<hbox>
		<button>
		<input file icon="gtk-quit"></input>    
		<label>exit</label>
		</button>
		</hbox> 
</vbox>
</window>
'

########################
## prog d'install ######
########################
DEM () {
avancement=DEM
apps="zenity gtkdialog"
install
# récupérer la sortie standard de Gtkdialog
VARIABLES=`gtkdialog --program DIALOG`
# créer les variables shell
eval $VARIABLES
		case "$EXIT" in
		gtk-quit) exit_2 ;;
		exit) exit_2 ;;
		suivant ) VERSION ;;
		* ) ;;
		esac
exit_1
}
VERSION () {
avancement=VERSION
# récupérer la sortie standard de Gtkdialog
VARIABLES=`gtkdialog --program DIALOG_2`
# créer les variables shell
eval $VARIABLES
		case "$EXIT" in
		gtk-quit) exit_2 ;;
		exit) exit_2 ;;
		intrepid ) wget http://les7140.fr.nf/source/intrepid/sources.list && gksudo mv /etc/apt/sources.list /etc/apt/sources.list_bak && gksudo cp sources.list /etc/apt/sources.list && rm sources.list && MAJ ;;
		jaunty ) wget http://les7140.fr.nf/source/jaunty/sources.list && gksudo mv /etc/apt/sources.list /etc/apt/sources.list_bak && gksudo cp sources.list /etc/apt/sources.list && rm sources.list && MAJ ;;
		karmic ) wget http://les7140.fr.nf/source/karmic/sources.list && gksudo mv /etc/apt/sources.list /etc/apt/sources.list_bak && gksudo cp sources.list /etc/apt/sources.list && rm sources.list && MAJ ;;
		* ) ;;
		esac
}
MAJ () {
avancement=MAJ
# récupérer la sortie standard de Gtkdialog
VARIABLES=`gtkdialog --program DIALOG_3`
		case "$EXIT" in
		gtk-quit) exit_2 ;;
		exit) exit_2 ;;
		suivant ) ;;
		* ) ;;
		esac
# créer les variables shell
eval $VARIABLES
xterm -e "wget -q http://fr.packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add -"
xterm -e "wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -"
xterm -e "wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -"
xterm -e gksudo "apt-get update"
xterm -e gksudo "apt-get upgrade"
INSTA
}
INSTA () {
avancement=INSTA
# récupérer la sortie standard de Gtkdialog
VARIABLES=`gtkdialog --program DIALOG_4`
# créer les variables shell
eval $VARIABLES
		case "$EXIT" in
		gtk-quit) exit_2 ;;
		exit) exit_2 ;;
		suivant ) INSTA_2 ;;
		* ) ;;
		esac
}
INSTA_2 () {
prog
prog_2 | zenity --progress --title="installation" --text="installation de vos programe" --auto-close
SOURCE
}
SOURCE () {
avancement=SOURCE
# récupérer la sortie standard de Gtkdialog
VARIABLES=`gtkdialog --program DIALOG_5`
# créer les variables shell
eval $VARIABLES	
		case "$EXIT" in
		gtk-quit) exit_2 ;;
		exit) exit_2 ;;
		oui ) gksudo mv /etc/apt/sources.list_bak /etc/apt/sources.list && CLAEN ;;
		non ) CLAEN ;;
		* ) ;;
		esac
}
CLAEN () {
avancement=CLAEN
# récupérer la sortie standard de Gtkdialog
VARIABLES=`gtkdialog --program DIALOG_6`
# créer les variables shell
eval $VARIABLES	
		case "$EXIT" in
		gtk-quit) exit_2 ;;
		exit) exit_2 ;;
		suivant ) gksudo "xterm -e apt-get -f -y --force-yes autoremove" && gksudo "xterm -e apt-get autochek" && FIN  ;;
		* ) ;;
		esac
}
FIN () {
avancement=FIN
# récupérer la sortie standard de Gtkdialog
VARIABLES=`gtkdialog --program DIALOG_7`
# créer les variables shell
eval $VARIABLES
case "$EXIT" in
		gtk-quit) killall mplayer && exit 0 ;;
		exit) killall mplayer && exit 0 ;;
		* ) ;;
		esac

}
DEM

Alors si vous avez des amélioration je suis preneur.
Bonne journée

ps: si quelqu'un sais corriger les faute d'orthographe un grand merci a lui.


j'y suis, j'y reste

Hors ligne