De retour de congés...
[macros-openoffice.git] / auf-poste-client-reflets / auf-reflets-tse
1 #! /bin/bash
2 # Script auf-reflets-tse de lancement de connexion Reflets-TSE (Coda)
3 # Copyright © 2007-2009  Agence universitaire de la Francophonie
4 # Autheur : Progfou <jean-christophe.andre@auf.org>
5 # Date de création : juillet 2007
6
7 # extrait de configuration dans /etc/auf-reflets-tse.conf
8 etcconf() {
9   # $1 = nom de l'option, $2 = valeur par défaut
10   option="$1"
11   value="$2"
12   if [ -r /etc/auf-reflets-tse.conf ]
13   then
14     confvalue="`sed -n 's/^'"$option"'="\([^"]*\)"$/\1/p' /etc/auf-reflets-tse.conf`"
15     [ -n "$confvalue" ] && value="$confvalue"
16   fi
17   echo $value
18 }
19
20 # chargement de la configuration en place le cas échéant
21 [ -r "$HOME/.auf/reflets/tse" ] && . "$HOME/.auf/reflets/tse"
22
23 # calcul des options qui n'auraient pas été configurées
24 [ -z "$title"    ] && title="Reflets-TSE (CODA)"
25 [ -z "$geometry" ] && geometry="auto"
26 [ -z "$printer"  ] && printer="auto"
27 [ -z "$username" ] && username="$USERNAME"
28 [ -z "$machine"  ] && machine=`echo $username | tr a-z A-Z | tr -dc A-Z0-9`
29 [ -z "$domain"   ] && domain="REFLETS"
30 [ -z "$server"   ] && server="reflets-tse.auf"
31 [ -z "$extra"    ] && extra=""
32
33 # autorise les configuration spécifiques à des machines
34 [ "$geometry" = "auto" ] && geometry="`etcconf geometry auto`"
35 [ "$printer" = "auto"  ] && printer="`etcconf printer auto`"
36 extra="$extra `etcconf extra ""`"
37
38 # suppression de la licence si elle vient du serveur AD
39 licence="$HOME/.rdesktop/licence.${machine:0:15}"
40 if [ -r "$licence" ]
41 then
42   # XXX: la valeur "skip" est empirique (étude de fichiers de licence)
43   # TODO: récupérer la valeur "count" à la position 92 (=> skip=91)
44   serveur_licence="`dd bs=1 skip=92 count=4 if="$licence" 2>/dev/null | iconv -f UCS-2BE -t UTF-8`"
45   [ "$serveur_licence" = "AD" ] && rm -f "$licence"
46 fi
47
48 # gestion des changements dans les options de configuration
49 case "$version" in
50   2)
51     # version 2 (version actuelle) => c'est bon, rien de plus à faire
52     ;;
53   1)
54     # version 1 => passer à la version actuelle
55     version=2
56     # migration de l'option de géométrie en « presque plein-écran »
57     [ "$geometry" = "fullscreen" ] && geometry="auto"
58     # forcer la ré-écriture du fichier de configuration
59     rm -f "$HOME/.auf/reflets/tse"
60     ;;
61   *)
62     # pas de version => passer à la version actuelle
63     version=1
64     # forcer les nouvelles options
65     geometry="fullscreen"
66     printer="auto"
67     # forcer la ré-écriture du fichier de configuration
68     rm -f "$HOME/.auf/reflets/tse"
69     ;;
70 esac
71
72 # création d'un fichier de configuration s'il n'y en a pas encore
73 if [ ! -f "$HOME/.auf/reflets/tse" ]
74 then
75   mkdir -p "$HOME/.auf/reflets"
76   cat > "$HOME/.auf/reflets/tse" << __EOF__
77 version="$version"
78 title="$title"
79 geometry="$geometry"
80 printer="$printer"
81 machine="$machine"
82 username="$username"
83 domain="$domain"
84 server="$server"
85 extra="$extra"
86 __EOF__
87 fi
88
89 # calcul de la valeur finale de l'option de géométrie
90 if [ "$geometry" = "auto" ]
91 then
92   geometry=`LANG= xwininfo -root | awk 'BEGIN{w=800;h=600}/Width:/{w=$2}/Height:/{h=$2}END{printf("%sx%s+%s+%s\n",w-10,h-78,0,25)}'`
93 fi
94 if [ "$geometry" = "fullscreen" ]
95 then
96   geometry="-f"
97 elif [ "$geometry" = "workarea" ]
98 then
99   geometry="-g $geometry -D"
100 else
101   geometry="-g $geometry"
102 fi
103
104 # calcul de la valeur finale de l'option de connexion d'imprimante
105 if [ "$printer" = "auto" ]
106 then
107   printer=`LANG= lpstat -v | sed -n '/cups-pdf:/{s/^.* \([^ ]*\): .*$/\1/p;q}'`
108 fi
109 if [ -n "$printer" ]
110 then
111   printer="-r printer:$printer"
112 else
113   if [ -n "$DISPLAY" -a -x /usr/bin/zenity ]; then
114     zenity --warning --text "Attention : aucune imprimante configurée ! \n"\
115         "\nL'imprimante virtuelle PDF est-elle bien installée ?"
116   else
117     echo "Attention : aucune imprimante configurée !"
118     echo "L'imprimante virtuelle PDF est-elle bien installée ?"
119   fi
120 fi
121
122 # toc-toc-toc
123 ping -c1 "$server" >/dev/null
124
125 # lancement de la connexion RDP
126 exec rdesktop -T "$title" $geometry $printer -a 8 -z -P -x m \
127         -n "$machine" -u "$username" -d "$domain" $extra "$server"