Newsgroup: it.comp.os.linux.mandrake
Titolo: X-wvdial un front end per wvdial

Per wvdial non ho trovato gui valide e allora mi sono messo a modificare 
un programmino scritto in shell dal nome X-wvdial.
Per farlo funzionare occorre avere settato wvdial con il comando da root:
#chmod +s wvdial
in tal modo wvdial � eseguibile dall'utente semplice.
Poi si memorizza in $HOME/bin ovvero in ~/bin il file di testo x-wvdial 
(si pu� usare un editor di testo come kwrite):
#! /bin/sh -posix
#-------------------------------------------------------------------
# x-wvdial
# this code is governed by the GPL 
#------------------------------------------------------------------- 
# uncomment this next line ONLY for debugging the script.
#set -vx
# SET_X11_ENVIRONMENT function: ------------------------------------
SET_X11_ENVIRONMENT() {
# main xrm resources block
xrdb -merge <<RES
! resources common to the green and red panels
*x-wvdial*background: gray
*x-wvdial*form*shapeStyle: Rectangle
*x-wvdial*form*Command*foreground: white
*x-wvdial*form*Command*background: slategray
*x-wvdial*form*Command*borderColor: slategray
*x-wvdial*form*Command*highlightThickness: 0
*x-wvdial*cursor: left_ptr
*x-wvdial*font: ${FONT:=9x15}
*x-wvdial*title: x-wvdial
RES
return 0
}
#-------------------------------------------------------------------
# This section contains code used while in OFF state
#-------------------------------------------------------------------
# REDPANEL function : ----------------------------------------------
REDPANEL() {
# This panel is shown if the ppp link is found inactive.
# resources specific to the red panel
xrdb -merge <<RES
*x-wvdial*form*message*background: red
*x-wvdial*form*message*foreground: white
RES
# variables specific to the red panel
# We need to piece together the "connect" and "dismiss" captions.
BT1="Connect"
BT2="Quit"
BTN="${BT1},${BT2}"
# Here we look up the "connection inactive" message.
LCD="Connection inactive"
# Show the red panel and wait for a user response.
echo $LCD | xmessage -name x-wvdial -buttons "$BTN" -center -file -
# They clicked the "connect" button if the exit code (answer) is 101.
# "Dismiss" was selected if the exit code is 102.
case $? in
     # Connecting is not our job. Let MAIN take care for this.
     101) return 0;;
     # By returning 102 we pass on that "dismiss" was selected.
     102) return 102;;
     # There was an error in xmessage.
       *) return 1;;
esac
}
#-------------------------------------------------------------------
# Terminazione di wvdial
#-------------------------------------------------------------------
KILLWVDIAL() {
# Manda un control-C a WVdial
PID=`pidof wvdial`
kill -n 2 $PID
#Aspetta che termini wvdial
while [ $PID ]
do
  sleep 0.5
  PID=`pidof wvdial`
done
return 0
}
#-------------------------------------------------------------------
# This section contains code used while in ACTIVE state
#-------------------------------------------------------------------
# GREENPANEL function : --------------------------------------------
GREENPANEL() {
# This panel is shown if the ppp link is found active.
# resources specific to the green panel
xrdb -merge <<RES
*x-wvdial*form*message*background: green
*x-wvdial*form*message*foreground: black
RES
# variables specific to the green panel
# We need to piece together the "disconnect" and "dismiss" captions.
BT1="Disconnect"
BT2="Quit"
BTN="${BT1},${BT2}"
LCD="Connected"
# Show the green panel and wait for a user response.
echo $LCD | xmessage -name x-wvdial -buttons "$BTN" -center -file -
# They clicked the "disconnect" button if the exit code (answer) is 101.
# "QUIT" was selected if the exit code is 102.
case $? in
     101) KILLWVDIAL; return 0;;
     # By returning 102 we pass on that "Quit" was selected.
     102) return 102;;
     # There was an error in xmessage.
       *) return 1;;
esac
}
#-------------------------------------------------------------------
# This section contains the code of the main program
#-------------------------------------------------------------------
SET_X11_ENVIRONMENT
while [ 1 ]
do
# Check if PPP is active or not
PPPDACTIVE="pidof wvdial"
# Post a panel showing the current state of the PPP interface.
# We'll see a red panel if the link is inactive.
if ! $PPPDACTIVE >/dev/null; then
   REDPANEL
# If the user clicked on "Quit" we'll just leave.
    if [ $? -ne 0 ]; then exit 0; fi
# Start wvdial
  wvdial >/dev/null 2>&1 &
fi
# Check if PPP is active or not
PPPDACTIVE="pidof wvdial"
if $PPPDACTIVE >/dev/null; then
  GREENPANEL
fi
# ... and exit if the user clicked on "Quit".
    if [ $? -ne 0 ]; then exit 0; fi
done
#-------------------------------------------------------------------
# end of main program:
#-------------------------------------------------------------------
Quindi si rende eseguibile tale file (x-wvdial) mediante un chmod 744 
x-wvdial. Si controlli che $HOME/bin sia in $PATH, dovrebbe essere cos� 
su mandriva. Quindi si mette nel men� per il lancio delle applicazioni 
l'applicazione x-wvdial. Tutto qui.
N.B. il programma x-wvdial originale � molto pi� complesso ma non faceva 
al caso mio, inoltre chiedeva di essere eseguito come root, invece 
questa versione non lo richiede.
Con questo x-wvdial dopo essersi connessi si pu� fare Quit e si rimane 
connessi, per disconnetersi si pu� fare ripartire x-wvdial e sconnettersi.

 connessi, per disconnetersi si può fare ripartire x-wvdial e sconnettersi.
perché non pubblichi questa guida anche su 
mandrakeitalia.org
?
ciao
Marcello

 perché non pubblichi questa guida anche su 
mandrakeitalia.org
?
Ciao Marcello,
ho messo come post un abbozzo di guida:
http://www.mandrakeitalia.org/modules/newbb/viewtopic.php?viewmode=flat&topic_id=18670&forum=5

Sandro kensan ha scritto:

perfetto, così se qualcuno vorrà usare il tuo script avrà una 
possibilità in più. grazie
ciao ciao
Marcello

 possibilità in più. grazie
Ciao, dopo tutto il tuo impegno e tempo che spendi per aiutare chi non 
sa usare mandriva è il minimo per ricambiare a aiutare.