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
7 # extrait de configuration dans /etc/auf-reflets-tse.conf
9 # $1 = nom de l'option, $2 = valeur par défaut
12 if [ -r /etc/auf-reflets-tse.conf ]
14 confvalue="`sed -n 's/^'"$option"'="\([^"]*\)"$/\1/p' /etc/auf-reflets-tse.conf`"
15 [ -n "$confvalue" ] && value="$confvalue"
20 # chargement de la configuration en place le cas échéant
21 [ -r "$HOME/.auf/reflets/tse" ] && . "$HOME/.auf/reflets/tse"
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=""
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 ""`"
38 # suppression de la licence si elle vient du serveur AD
39 licence="$HOME/.rdesktop/licence.${machine:0:15}"
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"
48 # gestion des changements dans les options de configuration
51 # version 2 (version actuelle) => c'est bon, rien de plus à faire
54 # version 1 => passer à la version actuelle
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"
62 # pas de version => passer à la version actuelle
64 # forcer les nouvelles options
67 # forcer la ré-écriture du fichier de configuration
68 rm -f "$HOME/.auf/reflets/tse"
72 # création d'un fichier de configuration s'il n'y en a pas encore
73 if [ ! -f "$HOME/.auf/reflets/tse" ]
75 mkdir -p "$HOME/.auf/reflets"
76 cat > "$HOME/.auf/reflets/tse" << __EOF__
89 # calcul de la valeur finale de l'option de géométrie
90 if [ "$geometry" = "auto" ]
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)}'`
94 if [ "$geometry" = "fullscreen" ]
97 elif [ "$geometry" = "workarea" ]
99 geometry="-g $geometry -D"
101 geometry="-g $geometry"
104 # calcul de la valeur finale de l'option de connexion d'imprimante
105 if [ "$printer" = "auto" ]
107 printer=`LANG= lpstat -v | sed -n '/cups-pdf:/{s/^.* \([^ ]*\): .*$/\1/p;q}'`
111 printer="-r printer:$printer"
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 ?"
117 echo "Attention : aucune imprimante configurée !"
118 echo "L'imprimante virtuelle PDF est-elle bien installée ?"
123 ping -c1 "$server" >/dev/null
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"