<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://forum.ubuntu-fr.org/extern.php?action=feed&amp;tid=1044501&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Forum Ubuntu-fr.org / [script] Rappel d'anniversaires]]></title>
		<link>http://forum.ubuntu-fr.org/viewtopic.php?id=1044501</link>
		<description><![CDATA[Les sujets les plus récents dans [script] Rappel d'anniversaires.]]></description>
		<lastBuildDate>Sat, 29 Sep 2012 20:00:35 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script] Rappel d'anniversaires]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=10944451#p10944451</link>
			<description><![CDATA[<p>Bonjour pingouinux, </p><p>Merci pour cette amélioration, c&#039;est effectivement plus malin comme ça !<br />J&#039;ai modifié de script en conséquence.</p>]]></description>
			<author><![CDATA[dummy@example.com (Pizz)]]></author>
			<pubDate>Sat, 29 Sep 2012 20:00:35 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=10944451#p10944451</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script] Rappel d'anniversaires]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=10895261#p10895261</link>
			<description><![CDATA[<p>Bonjour Pizz,<br />Pour info, dans ton script du #1, tu peux utiliser une fonction pour éviter les séquences répétitives. Voici la fin de ton script qui utilise une fonction <strong>verif</strong> :</p><div class="codebox"><pre class="vscroll"><code>verif() {
   DATE=$(date --date=$1 +%d-%m)
   if [[ $DATE == $DateAnniv ]]    
   then
      JOUR=$2
      AGE=$(( $(date +%Y) - $AnneeNaissance ))
      TEXTE=$( printf &quot;%-11s %-5s : anniversaire de %-10s : %2s ans\n&quot; $JOUR $DATE $Nom $AGE )
      echo &quot;$TEXTE&quot;
      if ! $COMMANDLINE
      then
         zenity --info --text &quot;$TEXTE&quot;
      fi
   fi
}

# test if FILE exists
if [ -e $FILE ]
then
    #=================================#
    while read LINE
    do
        if [[ ${LINE:0:1} != &quot;#&quot; ]] # ligne de commentaire : commence par #
        then
            DateAnniv=${LINE:0:5}
            AnneeNaissance=${LINE:6:4}
            Nom=${LINE:10}
            verif &quot;today&quot;     &quot;Aujourd&#039;hui&quot;
            verif &quot;tomorrow&quot;  &quot;Demain&quot;
            verif &quot;yesterday&quot; &quot;Hier&quot;
        fi
    done &lt; $FILE
else
    echo &quot;Error: file $FILE not found!&quot; &gt;&amp;2
    exit
fi</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (pingouinux)]]></author>
			<pubDate>Wed, 26 Sep 2012 07:06:36 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=10895261#p10895261</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script] Rappel d'anniversaires]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=10871971#p10871971</link>
			<description><![CDATA[<p>Salut Pizz!</p><p>Merci pour ce script spécial «Alzheimer» , c&#039;est parfait pour moi!<br /><img src="http://forum.ubuntu-fr.org/img/smilies/wink.png" width="15" height="15" alt="wink" /></p>]]></description>
			<author><![CDATA[dummy@example.com (cracolinux)]]></author>
			<pubDate>Mon, 24 Sep 2012 16:26:56 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=10871971#p10871971</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script] Rappel d'anniversaires]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=10842221#p10842221</link>
			<description><![CDATA[<p>Ouh punaise, je cherche depuis tout à l&#039;heure pour rien.. ^^</p><p>Peut-être si tu sais faire : améliorer le script en affichant une notif permanente sur le bureau (à la manière d&#039;un composant graphique sous kde)</p><p>Merci beaucoup sinon <img src="http://forum.ubuntu-fr.org/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[dummy@example.com (jeremlens)]]></author>
			<pubDate>Fri, 21 Sep 2012 17:57:19 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=10842221#p10842221</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script] Rappel d'anniversaires]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=10841111#p10841111</link>
			<description><![CDATA[<p>Le problème est simple : le script cherche un fichier anniversaire<strong>s</strong>.txt :</p><div class="codebox"><pre><code>Error: file /home/jeremy/anniversaires.txt not found!</code></pre></div><p>Mais vous avez crée un fichier anniversaire.txt. Il suffit simplement de renommer le fichier.</p>]]></description>
			<author><![CDATA[dummy@example.com (demonipuch)]]></author>
			<pubDate>Fri, 21 Sep 2012 16:38:31 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=10841111#p10841111</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script] Rappel d'anniversaires]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=10841031#p10841031</link>
			<description><![CDATA[<p>Salut, petit script qui a l&#039;air bien sympa.</p><p>Cependant j&#039;ai un petit pb :</p><div class="codebox"><pre><code>jeremy@jeremy-HP:~$ ./anniversaire.sh 
Error: file /home/jeremy/anniversaires.txt not found!</code></pre></div><p>Pourtant j&#039;ai bien les fichiers dans mon /home</p><div class="codebox"><pre><code>jeremy@jeremy-HP:~$ ls 
anniversaire.sh   Bureau     Images          Modèles  Public           Vidéos
anniversaire.txt  Documents  KMail2.desktop  Musique  Téléchargements</code></pre></div><p>Voici les deux fichiers :</p><div class="codebox"><pre><code>jeremy@jeremy-HP:~$ cat anniversaire.txt 
#jj-mm-aaaa     nom
28-01-1992      Jérémy
31-08-1992      Charlotte
20-09-1995      Ludivine
15-09-1994      Tifany
06-09-1975      Rolande
21-09-2011      Test
jeremy@jeremy-HP:~$ </code></pre></div><p>anniversaire.sh</p><div class="codebox"><pre class="vscroll"><code>jeremy@jeremy-HP:~$ cat anniversaire.sh 
#!/bin/bash 
# Anniversire.sh
#
# Affiche l&#039;anniversaire du jour à partir du fichier ~/anniversaires.txt
#   
#
#    Exemple de fichier anniversaires.txt :
#    #jour-mois-année    Nom
#    06-01-1983  Nicolas 
#    26-01-1985  Julien 
#    14-02-1984  Jeremy
#    17-02-1980  Marie 
#
usage()
{
cat &lt;&lt; EOF

$0 

Script pour rappel d&#039;anniversaires.
Affiche dans une fenêtre Zenity les anniversaires du jour, 
du jour d&#039;avant et du jour d&#039;après contenus dans un fichier 
&quot;anniversaires.txt&quot;, de la forme :
    #jj-mm-aaaa   nom
    06-01-1983  Nicolas
    26-01-1985  Julien 
    14-02-1984  Jeremy 
    17-02-1900  Marie 

OPTIONS :
-f  spécifie le fichier anniversaire.txt, par défaut : ~/anniversaires.txt
-c  n&#039;affiche le résultat que dans la console
-h  affiche cette aide
EOF
}


FILE=~/anniversaires.txt
COMMANDLINE=false

# Parsing arguments
while getopts &quot;hcf:&quot; OPTION
do
    case $OPTION in
        h)
            usage
            exit 0
            ;;
        f)
            FILE=$OPTARG
            ;;
        c)
            COMMANDLINE=true
            ;;
        ?)
            echo &quot;options possibles : -h, -c, -f&quot;
            exit 0
            ;;
    esac
done

# test if FILE exists
if [ -e $FILE ]
then

    yesterday=$(date --date=&quot;yesterday&quot; +%d-%m)
    today=$(date +%d-%m)
    tomorrow=$(date --date=&quot;tomorrow&quot; +%d-%m)

    #=================================#
    while read LINE
    do
        if [[ ${LINE:0:1} != &quot;#&quot; ]] # ligne de commentaire : commence par #
        then
            DateAnniv=${LINE:0:5}
            AnneeNaissance=${LINE:6:4}
            Nom=${LINE:10}
            if [[ $today == $DateAnniv ]]       # Aujourd&#039;hui
            then
                echo &quot;Aujourd&#039;hui $today : anniversaire de $Nom : $(( $(date +%Y) - $AnneeNaissance )) ans&quot;
                if ! $COMMANDLINE 
                then
                    zenity --info --text &quot;Aujourd&#039;hui, anniversaire de $Nom : $(( $(date +%Y) - $AnneeNaissance )) ans&quot;
                fi
            fi
            if [[ $tomorrow == $DateAnniv ]]    # Demain
            then
                echo &quot;Demain $tomorrow      : anniversaire de $Nom : $(( $(date +%Y) - $AnneeNaissance )) ans&quot;
                if ! $COMMANDLINE 
                then
                    zenity --info --text &quot;Demain $tomorrow, anniversaire de $Nom : $(( $(date +%Y) - $AnneeNaissance )) ans&quot;
                fi
            fi
            if [[ $yesterday == $DateAnniv ]]   # Hier
            then
                echo &quot;Hier $yesterday        : anniversaire de $Nom : $(( $(date +%Y) - $AnneeNaissance )) ans&quot;
                if ! $COMMANDLINE 
                then
                    zenity --info --text &quot;Hier $yesterday, anniversaire de $Nom : $(( $(date +%Y) - $AnneeNaissance )) ans&quot;
                fi
            fi
        fi
    done &lt; $FILE
else
    echo &quot;Error: file $FILE not found!&quot; &gt;&amp;2
    exit
fi</code></pre></div><br /><p>Merci <img src="http://forum.ubuntu-fr.org/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[dummy@example.com (jeremlens)]]></author>
			<pubDate>Fri, 21 Sep 2012 16:31:01 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=10841031#p10841031</guid>
		</item>
		<item>
			<title><![CDATA[[script] Rappel d'anniversaires]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=10830371#p10830371</link>
			<description><![CDATA[<p>Salut, </p><p>Voilà un petit script &quot;anniversaire.sh&quot; qui permet d&#039;afficher les anniversaires du jour, du jour d&#039;après ou du jour d&#039;avant (pour se rattraper) dans une fenêtre zenity.<br />Pour cela, il faut remplir un fichier anniversaires.txt de la forme :</p><div class="codebox"><pre><code>#jj-mm-aaaa   nom
06-01-1983  Nicolas
26-01-1985  Julien 
14-02-1984  Jeremy 
17-02-1900  Marie </code></pre></div><p>Par défaut, le script cherche le fichier ~/anniversaires.txt, mais on peut spécifier le fichier avec l&#039;option -f.</p><p>Chez moi, j&#039;ai mis ce script dans les applications au démarrage, et dans mon .zshrc (ou .bashrc) avec l&#039;option -c (ligne de commande seule).<br />Je ne suis pas un spécialiste du bash, toutes vos remarques sur l&#039;amélioration du code me seront utiles.</p><p>Voici le script :</p><div class="codebox"><pre class="vscroll"><code>#!/bin/bash 
# Anniversire.sh
#
# Affiche l&#039;anniversaire du jour à partir du fichier ~/anniversaires.txt
#   
#
#    Exemple de fichier anniversaires.txt :
#    #jour-mois-année    Nom
#    06-01-1983  Nicolas 
#    26-01-1985  Julien 
#    14-02-1984  Jeremy
#    17-02-1980  Marie 
#
usage()
{
cat &lt;&lt; EOF

$0 

Script pour rappel d&#039;anniversaires.
Affiche dans une fenêtre Zenity les anniversaires du jour, 
du jour d&#039;avant et du jour d&#039;après contenus dans un fichier 
&quot;anniversaires.txt&quot;, de la forme :
    #jj-mm-aaaa   nom
    06-01-1983  Nicolas
    26-01-1985  Julien 
    14-02-1984  Jeremy 
    17-02-1900  Marie 

OPTIONS :
-f  spécifie le fichier anniversaire.txt, par défaut : ~/anniversaires.txt
-c  n&#039;affiche le résultat que dans la console
-h  affiche cette aide
EOF
}

verif() 
{
    DATE=$(date --date=$1 +%d-%m)
    if [[ $DATE == $DateAnniv ]]    
    then
        JOUR=$2
        AGE=$(( $(date +%Y) - $AnneeNaissance ))
        TEXTE=$( printf &quot;%-11s %-5s : anniversaire de %-10s : %2s ans\n&quot; $JOUR $DATE $Nom $AGE )
        echo &quot;$TEXTE&quot;
        if ! $COMMANDLINE
        then
            zenity --info --text &quot;$TEXTE&quot;
        fi
    fi
}

FILE=~/anniversaires.txt
COMMANDLINE=false

# Parsing arguments
while getopts &quot;hcf:&quot; OPTION
do
    case $OPTION in
        h)
            usage
            exit 0
            ;;
        f)
            FILE=$OPTARG
            ;;
        c)
            COMMANDLINE=true
            ;;
        ?)
            echo &quot;options possibles : -h, -c, -f&quot;
            exit 0
            ;;
    esac
done

# test if FILE exists
if [ -e $FILE ]
then
    #=================================#
    while read LINE
    do
        if [[ ${LINE:0:1} != &quot;#&quot; ]] # ligne de commentaire : commence par #
        then
            DateAnniv=${LINE:0:5}
            AnneeNaissance=${LINE:6:4}
            Nom=${LINE:10}
            verif &quot;today&quot;     &quot;Aujourd&#039;hui&quot;
            verif &quot;tomorrow&quot;  &quot;Demain&quot;
            verif &quot;yesterday&quot; &quot;Hier&quot;
        fi
    done &lt; $FILE
else
    echo &quot;Error: file $FILE not found!&quot; &gt;&amp;2
    exit
fi</code></pre></div><p>EDIT : amélioration de pingouinux</p>]]></description>
			<author><![CDATA[dummy@example.com (Pizz)]]></author>
			<pubDate>Thu, 20 Sep 2012 19:11:22 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=10830371#p10830371</guid>
		</item>
	</channel>
</rss>
