X-Git-Url: http://git.grml.org/?p=grml-scripts.git;a=blobdiff_plain;f=usr_bin%2Fgrml-lock;h=6b0bf598cd085033a63e72bac313d7b4885c062d;hp=e6e50e191ef3fa73b1aa41547b5db83ade6afafe;hb=cdb523d5ab869b95f9c33fa0928744adcfb64e2d;hpb=d6b26ce3b8ffa721052bfb0eebc546ac9a63e5f9 diff --git a/usr_bin/grml-lock b/usr_bin/grml-lock index e6e50e1..6b0bf59 100755 --- a/usr_bin/grml-lock +++ b/usr_bin/grml-lock @@ -4,14 +4,18 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. -# Latest change: Son Mär 18 16:41:49 CET 2007 [mika] +# Latest change: Mon Jun 04 22:49:37 CEST 2007 [mika] ################################################################################ -PN=$0 +PN="$0" if [ -r /etc/grml/script-functions ] ; then . /etc/grml/script-functions - check4progs vlock xlock sudo chpasswd dialog || { echo "Sorry, can't continue. Exiting.">&2 ; exit 1 } + if [ -x /usr/bin/X ] ; then + check4progs vlock xlock sudo chpasswd dialog || { echo "Sorry, can't continue. Exiting.">&2 ; exit 1 } + else + check4progs vlock sudo chpasswd dialog || { echo "Sorry, can't continue. Exiting.">&2 ; exit 1 } + fi fi if [ -r /etc/grml_version ] ; then @@ -21,7 +25,7 @@ it might not work as intended." 7 70 fi welcome_screen() { -dialog --stdout --title "$PN" --msgbox "Welcome to $PN! +dialog --stdout --title "$PN" --yes-label Continue --no-label Quit --yesno "Welcome to $PN! This script will lock virtual consoles when running on console or lock X server when running X. @@ -34,6 +38,13 @@ GNU screen)! Report bugs, send wishes and feedback to the grml team: http://www.grml.org/ - contact (at) grml.org " 16 65 + + case $? in + (0) # everything ok + ;; + (1) echo "Cancel pressed." ; exit 1 ;; + (255) echo "ESC pressed." ; exit 255 ;; + esac } lockcons() @@ -51,7 +62,7 @@ askxlock() dialog --stdout --title "$PN" --yesno "Now lock X?" 0 0 retval=$? case $retval in - 0) + 0) lockx ;; esac @@ -73,7 +84,7 @@ askpwd() dialog --stdout --title "$PN" --yesno "Set password for user $USER?" 0 0 retval=$? case $retval in - 0) + 0) while [ -z "$PASSWD" ] ; do PASSWD=$(dialog --stdout --title "$PN" --passwordbox "Set password (hidden typing):" 0 0) if [ -n "$PASSWD" ] ; then @@ -89,14 +100,18 @@ case $retval in esac } -if [[ $(tty) == /dev/tty* ]] ; then - welcome_screen - askpwd - askvlock -elif [ -n "$DISPLAY" ] ; then - welcome_screen - askpwd - askxlock +if ! isgrmlcd ; then + [[ $(tty) == /dev/tty* ]] && lockcons || lockx +else + if [[ $(tty) == /dev/tty* ]] ; then + welcome_screen + askpwd + askvlock + elif [ -n "$DISPLAY" ] ; then + welcome_screen + askpwd + askxlock + fi fi ## END OF FILE #################################################################