[Linux-bruxelles] marche pas Was:Re: forcer un exit

Aldo info at brlspeak.net
Mer 28 Oct 17:19:18 CET 2009


Hello Pierre,

On Wed, Oct 28, 2009 at 12:04:36AM +0100, Pierre Poissinger wrote:
> 2009/10/26 Ald0 <info at brlspeak.net>
> 
> > Hello,
> >
> > je voudrais pouvoir "forcer" un exit (ou retour au début d'un script) par
> > la touche <ENTER>; je m'explique:
> >
> Tu peux redef INTR via stty - le seul default: ton shell peux continuer a
> prendre des INTR dans la figure si tu fais pas gaffe. Tu devrais pouvoir,
> via trap, remettre de l'orde.
> 
> eg:
> 8<-------------------------- doHello.sh ------------
> #!/bin/sh
> # Trap INTR: When it occurs, reset INTR to CTRL-C
> trap "stty intr '^C'" 2
> # Enter will send INTR
> stty intr \13
> # Run something
> echo "Starting something"
> ./hello
> # I am done
> echo "Done"
> --------------------------------------------------------->8
> 
> Pour la forme, le code C de mon hello 'simulant' un exe genre mplayer....
> 8<--------------------------hello.c---------------------
> #include <stdio.h>
> #include <unistd.h>
> 
> int main(void) {
>   int status=1;
>   while(1) {
>     printf("%s\n",(status++)%2?"Ping":"Pong");
>     sleep(1);
>   }
>   return 0; /* for grumpy compilers... */
> }
> -------------------------------------------------------->8

J'ai fait l'essai suivaant et ça plante royalement à un moment, m'empêchant
de sortir *même avec ctrl+c*; mais je m'explique:

j'ai fait un  ws  qui lance  whichstation  comme le tien lance hello.
ça ça va!

Ensuite, j'ai des urls de stream, dont la r t b f, qui utilisent des m3u
contenant trois quatre cinq urls de serveur...
Le blème est bien là, je le reprécise:
sans ton script (ws) pour intr, si je fais  enter  il va d'url en url dans 
le m3u (rtbf), 
pour les urls non m3u là il sort et re-va au début du script (cf. exec $0
dans whichstation).

Sans ton script et sans l'option -slave passée à mplayer, après le dernier 
url dans le m3u il sort. Mais du coup on doit se farcir deux trois jusqu'à
cinq six fois le stream car ça fais des sursauts passant de serveur à
serveur jusqu'au dernier.
C pour ça que j'ai mis -slave pour mplayer,
mais du coup en mettant ça j'etais forczé de faire ctrl+c.

J'aimerais pouvoir faire un retour vers le mneu principal TOUJOURS par enter
et pas par ctrl+c, et ce peu importe que je stream une url asf asx pls ou
m3u;
mais pour ça faut qu'il ne streame qu'uen fois et donc comme ctrl+c était la
seule commande qui interrompait net le stream m3u, je me suis dit:
si on arrive à passer ctgrl+c en appuyant sur enter on y est !

Or avec ton script + -slave c'est la cata pour l'url rtbf: ni ctrl+c ni
enter n'interrompent plus.
Eet si je supprime -slave là ton script ne fais de toute façon rien, je dois
soit appuyer x fois sur enter pour l'url m3u, soit faire ctrl+c qui là
semble fonctionner.

Bizarre!

Le ws je le mets en pj,
pour whichstation c'est par ici:
http://whichstation.blinuxman.net/

Aldo.

PS: non pas que rhythmbox ne soit pas bien mais mon script whichstation est
un peu plus blindfriendly !!!

-------------- section suivante --------------
#!/bin/bash
# Trap INTR: When it occurs, reset INTR to CTRL-C
trap "stty intr '^C'" 2
# Enter will send INTR
stty intr \13
# Run ws now!
whichstation
# I am done
exit


Plus d'informations sur la liste de diffusion Linux-bruxelles