releasing version 1.6
[macros-openoffice.git] / auf-poste-client-reflets / auf-reflets-tse
CommitLineData
b84b4c5e
TN
1#! /bin/sh
2# Script auf-reflets-tse de lancement de connexion Reflets-TSE (Coda)
3# Copyright © 2007-2008 Agence universitaire de la Francophonie
4# Autheur : Progfou <jean-christophe.andre@auf.org>
5# Date de création : juillet 2007
6
4684b291
P
7# extrait de configuration dans /etc/auf-reflets-tse.conf
8etcconf() {
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
b84b4c5e
TN
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)"
ba675450 25[ -z "$geometry" ] && geometry="auto"
b84b4c5e
TN
26[ -z "$printer" ] && printer="auto"
27[ -z "$machine" ] && machine=`echo $USERNAME | tr a-z A-Z | tr -dc A-Z0-9`
28[ -z "$username" ] && username="$USERNAME"
29[ -z "$domain" ] && domain="REFLETS"
30[ -z "$server" ] && server="reflets-tse.auf"
ba675450 31[ -z "$extra" ] && extra=""
b84b4c5e 32
4684b291
P
33# autorise les configuration spécifiques à des machines
34[ "$geometry" = "auto" ] && geometry="`etcconf geometry auto`"
35[ "$printer" = "auto" ] && printer="`etcconf printer auto`"
36extra="$extra `etcconf extra ""`"
37
38# vérification de la présence d'une licence
39if [ ! -r "$HOME/.rdesktop/licence.$machine" ]
40then
41 # licence inexistante => recherche d'une ancienne licence
42 licence="`ls -tr "$HOME/.rdesktop/licence".* | tail -1`"
43 # licence trouvée => on utilise le nom de machine indiqué
44 [ -n "$licence" ] && machine="`basename "$licence" | cut -d. -f2`"
45fi
46
b84b4c5e
TN
47# gestion des changements dans les options de configuration
48case "$version" in
ba675450
P
49 2)
50 # version 2 (version actuelle) => c'est bon, rien de plus à faire
51 ;;
b84b4c5e 52 1)
ba675450
P
53 # version 1 => passer à la version actuelle
54 version=2
55 # migration de l'option de géométrie en « presque plein-écran »
56 [ "$geometry" = "fullscreen" ] && geometry="auto"
57 # forcer la ré-écriture du fichier de configuration
58 rm -f "$HOME/.auf/reflets/tse"
b84b4c5e
TN
59 ;;
60 *)
61 # pas de version => passer à la version actuelle
62 version=1
63 # forcer les nouvelles options
64 geometry="fullscreen"
65 printer="auto"
66 # forcer la ré-écriture du fichier de configuration
67 rm -f "$HOME/.auf/reflets/tse"
68 ;;
69esac
70
71# création d'un fichier de configuration s'il n'y en a pas encore
72if [ ! -f "$HOME/.auf/reflets/tse" ]
73then
74 mkdir -p "$HOME/.auf/reflets"
75 cat > "$HOME/.auf/reflets/tse" << __EOF__
76version="$version"
77title="$title"
78geometry="$geometry"
79printer="$printer"
80machine="$machine"
81username="$username"
82domain="$domain"
83server="$server"
ba675450 84extra="$extra"
b84b4c5e
TN
85__EOF__
86fi
87
88# calcul de la valeur finale de l'option de géométrie
89if [ "$geometry" = "auto" ]
90then
ba675450 91 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)}'`
b84b4c5e
TN
92fi
93if [ "$geometry" = "fullscreen" ]
94then
95 geometry="-f"
ba675450
P
96elif [ "$geometry" = "workarea" ]
97then
98 geometry="-g $geometry -D"
b84b4c5e
TN
99else
100 geometry="-g $geometry"
101fi
102
103# calcul de la valeur finale de l'option de connexion d'imprimante
104if [ "$printer" = "auto" ]
105then
abf03966 106 printer=`LANG= lpstat -v | sed -n '/cups-pdf:/{s/^.* \([^ ]*\): .*$/\1/p;q}'`
b84b4c5e
TN
107fi
108if [ -n "$printer" ]
109then
110 printer="-r printer:$printer"
111else
76a6b671
P
112 if [ -n "$DISPLAY" -a -x /usr/bin/zenity ]; then
113 zenity --warning --text "Attention : aucune imprimante configurée ! \n"\
114 "\nL'imprimante virtuelle PDF est-elle bien installée ?"
115 else
116 echo "Attention : aucune imprimante configurée !"
117 echo "L'imprimante virtuelle PDF est-elle bien installée ?"
118 fi
b84b4c5e
TN
119fi
120
4684b291
P
121# toc-toc-toc
122ping -c1 "$server" >/dev/null
123
b84b4c5e 124# lancement de la connexion RDP
4684b291 125rdesktop -T "$title" $geometry $printer -a 8 -z -P -x m \
ba675450 126 -n "$machine" -u "$username" -d "$domain" $extra "$server"
4684b291
P
127status="$?"
128[ $status != 0 ] && echo "DEBUG: statut de sortie de rdesktop : $status"
129
130# en cas de sortie anormale, on écarte la licence utilisée
131# (note : status=2 en cas de fermeture forcée de la fenêtre)
132licence="$HOME/.rdesktop/licence.$machine"
133if [ $status != 0 -a $status != 2 -a -r "$licence" ]
134then
135 # FIXME: TODO: tester les cas de problèmes de licences
136 echo -n "DEBUG: " \
137 mv "$licence" "$licence"_DISABLED
138fi
139
140exit $status