savannah-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Savannah-hackers] submission of Fépéter - sa vannah.nongnu.org


From: yhargla
Subject: [Savannah-hackers] submission of Fépéter - sa vannah.nongnu.org
Date: Sun, 04 Jan 2004 14:09:56 -0500
User-agent: Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.4) Gecko/20030630 Galeon/1.3.8

Un projet a été soumis à savannah.nongnu.org
Ce courriel a été envoyé à address@hidden, address@hidden


Yhargla <address@hidden> a décrit le projet comme suit :
Licence: gpl
Autre Licence: 
Paquet: Fépéter
Nom système: fepeter
Type: non-GNU

Description:
Mon projet se nomme "Fépéter".

Il consiste en un script Perl permettant de lancer une application appropriée 
au type de fichier passé en paramètre avec une simple commande.
Exemple:
$ fepeter un_film.mpg
Fépéter lancera alors une application de lecture de vidéo comme Xine ou Mplayer.
L'association entre type de fichier (basé sur la commande 'file' ou sur 
l'extension du fichier) et application est paramétrable dans un fichier de 
configuration.
Autre exemple:
$ fepeter image.jpeg video.mpg musique.mp3 *.txt
Fépéter lancera successivement les applications associées (par exemple gqview, 
puis lorsque l'utilisateur fermera ce programme mplayer sera lancé, puis xmms 
puis vi).
Ce projet a pour but de permettre à un utilisateur novice de lancer facilement 
l'application adaptée sans avoir à connaître son nom et sa syntaxe, et à 
l'utilisateur expérimenté de configurer finement un lanceur.

Il est actuellement fonctionnel sur un système GNU/Linux avec Perl.

Source du programme:
-------------8<-------------8<----------------
#!/usr/bin/perl -w
                                                                                
                                                                             
# Lance l'application associée au type de fichier
                                                                                
                                                                             
use strict;
                                                                                
                                                                             
my $DEBUG = 1;
my %ACTIONS;
my $CONFIG = "fepeter.conf";
my($fichier, $type, $regex, $action);
                                                                                
                                                                             
sub usage {
    print "fepeter.pl fichier1 fichier2 ...\n";
    print "lance le programme adapté au fichier\n";
    exit
}
                                                                                
                                                                             
sub debug {
    my $message = $_[0];
    ! $DEBUG && return;
    print "debug: $message\n"
}                                                                               
                                                                              
                                                                                
                                                                             
address@hidden && usage;
                                                                                
                                                                             
# init actions
my ($ligne, $key, $value);
open FH, $CONFIG or die $!;
while ($ligne = <FH>) {
    chomp $ligne;
    $ligne =~ /\#.*/ && next;
    $ligne !~ /.*,.*/ && next;
    ($key,$value) = split(/,/, $ligne);
    debug "clef: $key, valeur: $value";
    $ACTIONS{$key} = $value;
}
                                                                                
                                                                             
# fichiers
foreach $fichier (@ARGV) {
    debug "fichier: $fichier";
    $type = `file -b $fichier`;
    debug "type: $type";
    foreach $regex (keys (%ACTIONS)) {
        debug "regex: $regex";
        if ( $type =~ $regex ) {
            $action = $ACTIONS{$regex};
            $action =~ s/€/$fichier/g;
            debug "action: $action";
            system($action);
            debug "action: $action";
            system($action);
            last;
        }
    }
}
-------------8<-------------8<----------------

Étant donné qu'il est en Perl pur et qu'il n'a aucune autre dépendance je ne 
pense pas qu'il y ait de problèmes légaux.

Dépendances logicielles:


Autres Commentaires:



_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/







reply via email to

[Prev in Thread] Current Thread [Next in Thread]