#!/usr/bin/perl # # Name: # # # Synopsis # # # Options # # # History: # while ($#ARGV > -1) { $_ = shift @ARGV; if (/^-m$/) { $MODE=shift @ARGV; next; } if (/^--DEBUG$/) { $DEBUG=1; next; } if (/^--HELP$/) { &usage("__SHOW_HELP"); } &usage("$_"); } # # display the help message. # I find it usefull to leave this subroutine here, next to the parameter # parsing, as it makes it much easer to keep the help and the # actual parsing in sync. sub usage { $gripe=shift @_; print <<"EO_USAGE"; $BASENAME --HELP print this screen EO_USAGE exit 0 if ($gripe eq "__SHOW_HELP"); &die("Don't understand:$gripe"); } $cmd="who | grep ':0 '|awk '{print \$1'}"; $who=`$cmd`; chop($who); $conf="/var/tmp/x11vnc-$$.conf"; $log="/var/tmp/x11vnc-$$.log"; open(OUT,">$conf"); if ($MODE==5900 && $who) { print OUT <<"EO5900"; # mode 5900, $who inetd display :0 once shared rfbauth /home/$who/.vnc/remote.passwd gone '/usr/local/bin/xsetdpms.on.sh' users $who afteraccept '/usr/local/bin/xsetdpms.off.sh' solid speeds modem fs 1.0 oa $log auth /var/gdm/:0.Xauth EO5900 } elsif ($MODE==5900) { print OUT <<"EO5900z"; # mode 5900, gdm or kdm inetd display :0 once shared gone '/usr/local/bin/xsetdpms.on.sh' afteraccept '/usr/local/bin/xsetdpms.off.sh' solid speeds modem fs 1.0 oa $log auth /var/gdm/:0.Xauth EO5900z } elsif ($MODE==5901) { print OUT <<"EO5901"; oa $log inetd display :0 once shared auth /var/gdm/:0.Xauth gone '/usr/local/bin/xsetdpms.on.2.sh' users $who afteraccept '/usr/local/bin/xsetdpms.off.sh' solid speeds modem fs 1.0 accept popup EO5901 } else { &die("unknown mode"); } `/usr/bin/x11vnc -rc $conf`; if (!$DEBUG) { `rm -f $conf $log`; }