source: tt-tools/bin/twintact-udev @ 16

Revision 6, 3.2 KB checked in by guillaume, 9 years ago (diff)

Publication tt-ttols v0.1
Des outils pour le TwinTact

  • Property svn:executable set to *
Line 
1#! /bin/sh
2
3me=`basename $0`
4
5export TWINTACT_ADDRESS="169.254.0.2"
6export TWINTACT_BIND="169.254.0.1"
7export TWINTACT_PORT="2222"
8export TWINTACT_SHARE="/usr/local/share/twintact"
9
10OMAPTTPATH="/usr/local/libexec/omap-tt"
11OMAPTTBIN="omap-tt"
12OMAPTT="$OMAPTTPATH/$OMAPTTBIN"
13
14LOG='/dev/null'
15DEBUGFILE="twintact.log"
16
17if [ -n "${DEBUG_TT_UDEV}" ]; then
18        LOG="/tmp/$DEBUGFILE"
19        if [ "${DEBUG_TT_UDEV}" == "trace" ]; then
20                LOG="$LOG.$$"
21        else
22                touch -d "10 seconds ago" "$LOG.tmp"
23                [ "$LOG.tmp" -nt "$LOG" ] && rm -f "$LOG"
24                rm -f "$LOG.tmp"
25        fi
26        (
27                echo "-`date`---------------------------------"$$
28                echo env
29                env
30                echo "-`date`---------------------------------"$$
31                echo set
32                set
33                echo "-`date`---------------------------------"$$
34        ) >>$LOG
35fi
36
37MODE="$1"
38case "${ACTION}_${MODE}" in
39        add_omap)
40                lockme="/var/run/$me.lck"
41               
42                logger -i -p kern.debug -t TwinTact "Lock sur le TwinTact"
43                # On ne désire pas être exécuté plusieurs fois d'un coup
44                if lockfile -r 0 -s 1 -l 20 "$lockme" ; then
45                        if [ -x "$OMAPTT" ]; then
46                                logger -i -p kern.info -t TwinTact "Connection TT OMAP"
47                                cd "$OMAPTTPATH"
48                                export PATH="$OMAPTTPATH:$PATH"
49                                $OMAPTTBIN hook.bin >>$LOG 2>&1
50                                logger -i -p kern.info -t TwinTact "Transfert avec le TwinTact terminé (ret=$?)"
51                        else
52                                logger -i -p kern.info -t TwinTact "Connection TT OMAP disponible mais TT OMAP n'est pas installé"
53                        fi
54                fi
55                ;;
56               
57        remove_omap)
58                logger -i -p kern.info -t TwinTact "TT OMAP déconnecté" ;;
59       
60        add_synchro_net)
61                if [ "$PHYSDEVDRIVER" == "zaurus" ]; then
62                        (
63                        # Attendre que NetworkManager fasse sa sauce s'il est chargé
64                        pgrep NetworkManager >/dev/null 2>&1 && sleep 1
65                       
66                        # Mettre à jour le fichier host pour désigner le twintact
67                        if grep -Eq "^${TWINTACT_ADDRESS}.*twintact" /etc/hosts ; then
68                                grep -Ev "^${TWINTACT_ADDRESS}.*twintact" /etc/hosts >/etc/hosts.$me-tmp
69                        else
70                                cp -a /etc/hosts /etc/hosts.$me-tmp
71                        fi
72                        echo -e "${TWINTACT_ADDRESS}\ttwintact" >>/etc/hosts.$me-tmp
73                        mv -f /etc/hosts /etc/hosts.$me-bak
74                        mv -f /etc/hosts.$me-tmp /etc/hosts
75                       
76                        # On redirige plutôt la sortie vers /dev/null à cause de selinux
77                        /sbin/ifconfig $INTERFACE $TWINTACT_BIND
78                       
79                        # Si la clé privée spécifiée existe l'utiliser pour ce connecter
80                        # au TwinTact pour exécuter quelques commandes utiles
81                        if [ -e "${TWINTACT_SHARE}/id_dsa" -a -x "${TWINTACT_SHARE}/synchro_net.sh" ]; then
82                                "${TWINTACT_SHARE}/synchro_net.sh" >>$LOG 2>&1
83                                [ "$?" -eq 0 ] && logger -i -p kern.info -t TwinTact "TwinTact synchro_net effectuée (ret=$?)"
84                        fi
85                       
86                        logger -i -p kern.info -t TwinTact "TwinTact disponible à l'adresse ${TWINTACT_ADDRESS} sur $INTERFACE"
87                        ) &
88                else
89                        logger -i -p kern.debug -t TwinTact "TwinTact, rien à ajouter pour $PHYSDEVDRIVER"
90                fi
91                ;;
92               
93        remove_synchro_net)
94                if [ "$PHYSDEVDRIVER" == "zaurus" ]; then
95                        /sbin/ifconfig $INTERFACE down
96                        [ -s "/etc/hosts.$me-bak" ] && mv -f "/etc/hosts.$me-bak" /etc/hosts
97                        logger -i -p kern.info -t TwinTact "TwinTact sur $INTERFACE déconnecté"
98                else
99                        logger -i -p kern.debug -t TwinTact "TwinTact, rien à enlever pour $PHYSDEVDRIVER"
100                fi
101                ;;
102
103        *)
104                command=''
105                [ -n "$*" ] && command=" avec l'action '$ACTION' pour le mode '$MODE'"
106                logger -i -p kern.notice -t TwinTact "TwinTact, rien à faire$command"
107                ;;
108esac
109
110exit 0
Note: See TracBrowser for help on using the repository browser.