Améliorations de l'extension pour OpenOffice.org :
[macros-openoffice.git] / auf-poste-client-reflets / auf-reflets-tse
... / ...
CommitLineData
1#! /bin/sh
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
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
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`"
36extra="$extra `etcconf extra ""`"
37
38# suppression de la licence si elle vient du serveur AD
39licence="$HOME/.rdesktop/licence.$machine"
40if [ -r "$licence" ]
41then
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"
46fi
47
48# gestion des changements dans les options de configuration
49case "$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 ;;
70esac
71
72# création d'un fichier de configuration s'il n'y en a pas encore
73if [ ! -f "$HOME/.auf/reflets/tse" ]
74then
75 mkdir -p "$HOME/.auf/reflets"
76 cat > "$HOME/.auf/reflets/tse" << __EOF__
77version="$version"
78title="$title"
79geometry="$geometry"
80printer="$printer"
81machine="$machine"
82username="$username"
83domain="$domain"
84server="$server"
85extra="$extra"
86__EOF__
87fi
88
89# calcul de la valeur finale de l'option de géométrie
90if [ "$geometry" = "auto" ]
91then
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)}'`
93fi
94if [ "$geometry" = "fullscreen" ]
95then
96 geometry="-f"
97elif [ "$geometry" = "workarea" ]
98then
99 geometry="-g $geometry -D"
100else
101 geometry="-g $geometry"
102fi
103
104# calcul de la valeur finale de l'option de connexion d'imprimante
105if [ "$printer" = "auto" ]
106then
107 printer=`LANG= lpstat -v | sed -n '/cups-pdf:/{s/^.* \([^ ]*\): .*$/\1/p;q}'`
108fi
109if [ -n "$printer" ]
110then
111 printer="-r printer:$printer"
112else
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
120fi
121
122# toc-toc-toc
123ping -c1 "$server" >/dev/null
124
125# lancement de la connexion RDP
126exec rdesktop -T "$title" $geometry $printer -a 8 -z -P -x m \
127 -n "$machine" -u "$username" -d "$domain" $extra "$server"