Re: Script bash, lecture fichier on the fly

2005-07-10 Par sujet Leopold BAILLY
Brice Méalier [EMAIL PROTECTED] writes:

 On Sat, Jul 09, 2005 at 07:54:28AM +0200, Jean-Damien Durand wrote :
 Tu peut recuperer les headers que tu veux en une seule fois, par example:
 
 headers=`egrep ^(To:|Subject:|From:)|tr   _`|sort -t: -u|xargs
 echo MailPopup $headers|FvwmCommand -c
 
 (coup de bol: From, Subject et To sont dans le bon ordre alphabetique - le 
 fait que tu
 changes les espaces en '_' aide - sinon ca serait un peu plus tordu a cause 
 du echo
 apres).
 
 En esperant que ca marche pour toi...


 Merci de la réponse mais ça marche pas!


 J'ai donc décidé de sauver le mail dans un fichier temporaire et de
 travailler ce fichier:

 tmp_mail=/tmp/tmp_mail

 cat  $tmp_mail

 to=`grep -v \-To  $tmp_mail |grep -m 1 To:|tr   _`
 subject=`grep -m 1 Subject:  $tmp_mail |tr   _`
 from=`grep -m 1 From:  $tmp_mail |tr   _`


 rm $tmp_mail

 fvwmfunction='MailPopup'\ $from\ $subject\ $to

 echo $fvwmfunction|FvwmCommand -c


 Merci

Un script perl aurait été plus adapté, il t'éviterai de lire 3 fois le mail.

L'entée standard peut être traitée ligne à ligne, pour chaque header tu peux
donc alimenter la variable qui va bien, enfin tu peus t'arrêter de lire dès que
toutes les variables sont renseignées.


Léo.



Re: Script bash, lecture fichier on the fly

2005-07-10 Par sujet Brice Méalier
On Sun, Jul 10, 2005 at 01:56:35PM +0200, Leopold BAILLY wrote :
 Brice Méalier [EMAIL PROTECTED] writes:
 
  On Sat, Jul 09, 2005 at 07:54:28AM +0200, Jean-Damien Durand wrote :
  Tu peut recuperer les headers que tu veux en une seule fois, par example:
  
  headers=`egrep ^(To:|Subject:|From:)|tr   _`|sort -t: -u|xargs
  echo MailPopup $headers|FvwmCommand -c
  
  (coup de bol: From, Subject et To sont dans le bon ordre alphabetique - le 
  fait que tu
  changes les espaces en '_' aide - sinon ca serait un peu plus tordu a 
  cause du echo
  apres).
  
  En esperant que ca marche pour toi...
 
 
  Merci de la réponse mais ça marche pas!
 
 
  J'ai donc décidé de sauver le mail dans un fichier temporaire et de
  travailler ce fichier:
 
  tmp_mail=/tmp/tmp_mail
 
  cat  $tmp_mail
 
  to=`grep -v \-To  $tmp_mail |grep -m 1 To:|tr   _`
  subject=`grep -m 1 Subject:  $tmp_mail |tr   _`
  from=`grep -m 1 From:  $tmp_mail |tr   _`
 
 
  rm $tmp_mail
 
  fvwmfunction='MailPopup'\ $from\ $subject\ $to
 
  echo $fvwmfunction|FvwmCommand -c
 
 
  Merci
 
 Un script perl aurait été plus adapté, il t'éviterai de lire 3 fois le mail.
 
 L'entée standard peut être traitée ligne à ligne, pour chaque header tu peux
 donc alimenter la variable qui va bien, enfin tu peus t'arrêter de lire dès 
 que
 toutes les variables sont renseignées.

Ok pour le script perl mais je ne sais pas programmer en Perl!

J'en ai un à disposition qui marche très bien mais j'essaie d'y mettre
un test avant à savoir: tester que je suis bien sous Fvwm (sinon le
script ne doit pas être exécuté). J'ai implémenté un petit truc:


my $test=`ps ax|grep -c [f]vwm`;

if ($test==0) {
exit 0;
}


mais je me demande bien si c'est correct! si tu en as une idée, ça
serait sympa de me le dire!

Merci

-- 
Brice Méalier
[EMAIL PROTECTED]
Linux user nb. 372699
Debian Sarge


-- 
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs From et Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Script bash, lecture fichier on the fly

2005-07-10 Par sujet Laurent CARON

Brice Méalier a écrit :


Bonjour

pour programmer un mail popper sous fvwm m'indiquant le sujet, la
provenance et la destination de mails entrant sur ma machine, je
souhaite utiliser un script bash.

Donc voici mon environnement:
j'utilise des boites au format mbox stockées dans $HOME/mail/ j'utilise
procmail en que MDA.
Dans procmail, les mails sont triés selon les headers et pour mon petit
mail popper, j'utilise la règle suivante:


:0 c
*
|newMail.sh


tout nouveau mail est donc copié et passé dans un script bash.

Ce script doit simplement extraire les headers From, Subject et To
et les envoyer dans des variables qui me serviront un peu plus tard pour
mon popper.

Ce que j'ai fait pour le moment:

#!/bin/bash

FVWM=`ps -ef|grep '[f]vwm -s'`

# make sure we are running fvwm
if [ -z $FVWM ]
then
exit 0
fi

to=`grep -v \-To|grep -m 1 To:|tr   _`
subject=`grep -m 1 Subject:|tr   _`
from=`grep -m 1 From:|tr   _`

fvwmfunction='MailPopup'\ $from\ $subject\ $to

echo $fvwmfunction|FvwmCommand -c




le problème est que les données à lire sont volatiles et il n'est
capable de m'extraire seulement le premier champ spécifié (ici le champ
To, si je change l'ordre, il me lit le premier de la série).

Donc 2 solutions (il me semble): lancer les 3 grep en même tempset
enregistrer leurs sorties respectives (je crois pas ça possible...) ou
enregistrer l'entrée du script dans un fichier et travailler avec ce
fichier puis y faire un echo fichier en attendant le prochain mail.


Je suis débutant en bash et je bloque par manque de connaissances là! je
sais pas comment faire!

Auriez-vous une idée?


Cordialement Brice




 


man formail

--
Le signe oui est d'un homme qui s'endort ;
au contraire, le réveil secoue la tête et dit non.
-+- Émile Chartier, dit Alain (1868-1951) -+-


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs From et Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Script bash, lecture fichier on the fly

2005-07-10 Par sujet Brice Méalier
On Sun, Jul 10, 2005 at 03:51:30PM +0200, Laurent CARON wrote :
 Brice Méalier a écrit :
 
 Bonjour
 
 pour programmer un mail popper sous fvwm m'indiquant le sujet, la
 provenance et la destination de mails entrant sur ma machine, je
 souhaite utiliser un script bash.
 
 Donc voici mon environnement:
 j'utilise des boites au format mbox stockées dans $HOME/mail/ j'utilise
 procmail en que MDA.
 Dans procmail, les mails sont triés selon les headers et pour mon petit
 mail popper, j'utilise la règle suivante:
 
 
 :0 c
 *
 |newMail.sh
 
 
 tout nouveau mail est donc copié et passé dans un script bash.
 
 Ce script doit simplement extraire les headers From, Subject et To
 et les envoyer dans des variables qui me serviront un peu plus tard pour
 mon popper.
 
 Ce que j'ai fait pour le moment:
 
 #!/bin/bash
 
 FVWM=`ps -ef|grep '[f]vwm -s'`
 
 # make sure we are running fvwm
 if [ -z $FVWM ]
 then
  exit 0
 fi
 
 to=`grep -v \-To|grep -m 1 To:|tr   _`
 subject=`grep -m 1 Subject:|tr   _`
 from=`grep -m 1 From:|tr   _`
 
 fvwmfunction='MailPopup'\ $from\ $subject\ $to
 
 echo $fvwmfunction|FvwmCommand -c
 
 
 
 
 le problème est que les données à lire sont volatiles et il n'est
 capable de m'extraire seulement le premier champ spécifié (ici le champ
 To, si je change l'ordre, il me lit le premier de la série).
 
 Donc 2 solutions (il me semble): lancer les 3 grep en même tempset
 enregistrer leurs sorties respectives (je crois pas ça possible...) ou
 enregistrer l'entrée du script dans un fichier et travailler avec ce
 fichier puis y faire un echo fichier en attendant le prochain mail.
 
 
 Je suis débutant en bash et je bloque par manque de connaissances là! je
 sais pas comment faire!
 
 Auriez-vous une idée?
 
 
 Cordialement Brice
 
 
 
 
  
 
 man formail


Deja fait! et ça marche presque...

En fait maintenant j'ai problème de locales avec! Il a du mal avec
certains unicode ou ISO-8859-* que certains posteurs utilisent et ça je
ne sais pas du tout comment le gérer.

Si quelqu'un a une idée, elle est bienvenue.

-- 
Brice Méalier
[EMAIL PROTECTED]
Linux user nb. 372699
Debian Sarge


-- 
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs From et Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Script bash, lecture fichier on the fly

2005-07-10 Par sujet Leopold BAILLY
Brice Méalier [EMAIL PROTECTED] writes:

 On Sun, Jul 10, 2005 at 01:56:35PM +0200, Leopold BAILLY wrote :
 Brice Méalier [EMAIL PROTECTED] writes:
 

[...]

 Un script perl aurait été plus adapté, il t'éviterai de lire 3 fois le mail.
 
 L'entée standard peut être traitée ligne à ligne, pour chaque header tu peux
 donc alimenter la variable qui va bien, enfin tu peus t'arrêter de lire dès 
 que
 toutes les variables sont renseignées.

 Ok pour le script perl mais je ne sais pas programmer en Perl!

 J'en ai un à disposition qui marche très bien mais j'essaie d'y mettre
 un test avant à savoir: tester que je suis bien sous Fvwm (sinon le
 script ne doit pas être exécuté). J'ai implémenté un petit truc:


 my $test=`ps ax|grep -c [f]vwm`;

 if ($test==0) {
 exit 0;
 }


 mais je me demande bien si c'est correct! si tu en as une idée, ça
 serait sympa de me le dire!

C'est bon.

Autre façon de faire :

exit if( system(ps ax | grep -q [f]vwm) != 0 );


Léo.



Re: Script bash, lecture fichier on the fly

2005-07-10 Par sujet Brice Méalier
On Sun, Jul 10, 2005 at 05:21:28PM +0200, Leopold BAILLY wrote :
 Brice Méalier [EMAIL PROTECTED] writes:
 
  On Sun, Jul 10, 2005 at 01:56:35PM +0200, Leopold BAILLY wrote :
  Brice Méalier [EMAIL PROTECTED] writes:
  
 
 [...]
 
  Un script perl aurait été plus adapté, il t'éviterai de lire 3 fois le 
  mail.
  
  L'entée standard peut être traitée ligne à ligne, pour chaque header tu 
  peux
  donc alimenter la variable qui va bien, enfin tu peus t'arrêter de lire 
  dès que
  toutes les variables sont renseignées.
 
  Ok pour le script perl mais je ne sais pas programmer en Perl!
 
  J'en ai un à disposition qui marche très bien mais j'essaie d'y mettre
  un test avant à savoir: tester que je suis bien sous Fvwm (sinon le
  script ne doit pas être exécuté). J'ai implémenté un petit truc:
 
 
  my $test=`ps ax|grep -c [f]vwm`;
 
  if ($test==0) {
  exit 0;
  }
 
 
  mais je me demande bien si c'est correct! si tu en as une idée, ça
  serait sympa de me le dire!
 
 C'est bon.
 
 Autre façon de faire :
 
 exit if( system(ps ax | grep -q [f]vwm) != 0 );
 
 
 Léo.


Merci!

bah premier truc que je fais en perl

est-ce que tu connais un bon tuto pour le perl? parce que ce que j'ai
trouvé est moyen...
 

-- 
Brice Méalier
[EMAIL PROTECTED]
Linux user nb. 372699
Debian Sarge


-- 
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs From et Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Script bash, lecture fichier on the fly

2005-07-10 Par sujet Leopold BAILLY
Brice Méalier [EMAIL PROTECTED] writes:

 On Sun, Jul 10, 2005 at 05:21:28PM +0200, Leopold BAILLY wrote :
 Brice Méalier [EMAIL PROTECTED] writes:
 

[...]

 bah premier truc que je fais en perl

 est-ce que tu connais un bon tuto pour le perl? parce que ce que j'ai
 trouvé est moyen...

Pour ce genre d'auto-formation, j'ai du mal à me passer d'un bon bouquin que je
potasse tranquillement dans mon lit avant de m'endormir.

Pour un voyage en profondeur dans bash, grep, sed, awk et une bonne initiation à
perl, je te conseille scripts sous linux de Christophe Blaess (Eyrolles).

Pour maîtriser toutes les subtilités de Perl, rien ne remplace le fameux camel's
book programmation en Perl de Larry Wall (O'Reilly).


Léo.



Re: Script bash, lecture fichier on the fly

2005-07-09 Par sujet Brice Méalier
On Sat, Jul 09, 2005 at 07:54:28AM +0200, Jean-Damien Durand wrote :
 Tu peut recuperer les headers que tu veux en une seule fois, par example:
 
 headers=`egrep ^(To:|Subject:|From:)|tr   _`|sort -t: -u|xargs
 echo MailPopup $headers|FvwmCommand -c
 
 (coup de bol: From, Subject et To sont dans le bon ordre alphabetique - le 
 fait que tu
 changes les espaces en '_' aide - sinon ca serait un peu plus tordu a cause 
 du echo
 apres).
 
 En esperant que ca marche pour toi...


Merci de la réponse mais ça marche pas!


J'ai donc décidé de sauver le mail dans un fichier temporaire et de
travailler ce fichier:

tmp_mail=/tmp/tmp_mail

cat  $tmp_mail

to=`grep -v \-To  $tmp_mail |grep -m 1 To:|tr   _`
subject=`grep -m 1 Subject:  $tmp_mail |tr   _`
from=`grep -m 1 From:  $tmp_mail |tr   _`


rm $tmp_mail

fvwmfunction='MailPopup'\ $from\ $subject\ $to

echo $fvwmfunction|FvwmCommand -c


Merci


-- 
Brice Méalier
[EMAIL PROTECTED]
Linux user nb. 372699
Debian Sarge


-- 
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs From et Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Script bash, lecture fichier on the fly

2005-07-08 Par sujet Jean-Damien Durand
Tu peut recuperer les headers que tu veux en une seule fois, par example:

headers=`egrep ^(To:|Subject:|From:)|tr   _`|sort -t: -u|xargs
echo MailPopup $headers|FvwmCommand -c

(coup de bol: From, Subject et To sont dans le bon ordre alphabetique - le fait 
que tu
changes les espaces en '_' aide - sinon ca serait un peu plus tordu a cause du 
echo
apres).

En esperant que ca marche pour toi...

A+, JD.

On Saturday 09 July 2005 01:10, Brice Méalier wrote:
BM  to=`grep -v \-To|grep -m 1 To:|tr   _`
BM  subject=`grep -m 1 Subject:|tr   _`
BM  from=`grep -m 1 From:|tr   _`
BM  
BM  fvwmfunction='MailPopup'\ $from\ $subject\ $to
BM  
BM  echo $fvwmfunction|FvwmCommand -c

-- 
Jean-Damien Durand CERN/IT/ADC/CA - Geneva, Switzerland
PGP PUBLIC KEY: http://home.cern.ch/~jdurand/public_key.asc
This mail is signed using CERN CA, please use my PGP key otherwise
CERN CA root certificate: http://cern.ch/service-grid-ca/crt/root_crt.html


smime.p7s
Description: S/MIME cryptographic signature