1#! /usr/local/bin/wish8.0 -f 2# 3# Copyright (c) 1999 Brian Somers <brian@Awfulhak.org> 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions 8# are met: 9# 1. Redistributions of source code must retain the above copyright 10# notice, this list of conditions and the following disclaimer. 11# 2. Redistributions in binary form must reproduce the above copyright 12# notice, this list of conditions and the following disclaimer in the 13# documentation and/or other materials provided with the distribution. 14# 15# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25# SUCH DAMAGE. 26# 27 28# 29# Display a window to request a users password, expecting a login name 30# as an argument and outputting the password to stdout. 31# 32 33set pwidth 11; # Prompt field width 34set vwidth 20; # Value field width 35set fxpad 7; # Value field width 36set fypad 3; # Value field width 37 38wm title . "PPP Login"; 39 40# Dump our password to stdout and exit 41proc done {} { 42 puts [.p.value get]; 43 exit 0; 44} 45 46frame .l; 47text .l.prompt -width $pwidth -height 1 -relief flat; 48 .l.prompt insert 1.0 "Login:"; 49pack .l.prompt -side left; 50 .l.prompt configure -state disabled; 51text .l.value -width $vwidth -height 1; 52 .l.value insert 1.0 $argv; 53pack .l.value -side right; 54 .l.value configure -state disabled; 55pack .l -side top -padx $fxpad -pady $fypad; 56 57frame .p; 58text .p.prompt -width $pwidth -height 1 -relief flat; 59 .p.prompt insert 1.0 "Password:"; 60pack .p.prompt -side left; 61 .p.prompt configure -state disabled; 62entry .p.value -show "*" -width $vwidth; 63pack .p.value -side right; 64bind .p.value <Return> {done}; 65focus .p.value; 66pack .p -side top -padx $fxpad -pady $fypad; 67 68frame .b; 69button .b.ok -default active -text "Ok" -takefocus 0 -command {done}; 70pack .b.ok -side left; 71button .b.cancel -default normal -text "Cancel" -takefocus 0 -command {exit 1}; 72pack .b.cancel -side right; 73pack .b -side top -padx $fxpad -pady $fypad; 74