########################################################################## # login.menu - Dynamically generates login menu for Lawson Users # J. David Schronce ########################################################################## # Passed Variables - none ########################################################################## # Extended Description # Allows users to select from available Lawson Environments and the # associated productlines within them ########################################################################## # Revision History: # # Version Date: Written By: Description # ----------- ------- ------------------ --------------- # 1.0 03/02/04 J. David Schronce Initial Version # ########################################################################## # TODO: # # ########################################################################## # Make the last entry in everyone's .profile as: # exec /path/to/program/login.menu # Works with GUI or text login - either "frontend.exe" or "univwin.exe" ########################################################################## # Change PGMPATH to reflect the path to this program # Change INSTITUTION to reflect your Company Name # Set COMMANDLINE=off to keep users from commandline ########################################################################## PGMPATH=/export/home/schroncd/bin INSTITUTION="David Schronce School of Shell Scripting" COMMANDLINE=on MAINMENU=limn if [[ -z ${TMPDIR} ]]; then TMPDIR=/tmp fi # Set up the search paths: PATH=$PATH:. # Make sure they are in an environment #. cv # Set up the shell environment: set -u trap "clear;echo;echo 'Disconnected from Lawson session';date;echo" 0 # COMMANDLINE=`echo #COMMANDLINE | tr [:upper:] [:lower:]` clear echo echo echo echo echo echo echo echo echo echo "`tput smso` $INSTITUTION `tput rmso`" | sed -e :a -e 's/^.\{1,77\}$/ & /;ta' echo echo echo "`tput smso` Select Lawson Environment `tput rmso`" | sed -e :a -e 's/^.\{1,77\}$/ & /;ta' echo ## Get list of environments lstver | sort > $TMPDIR/expfile.$$ pr -n -t $TMPDIR/expfile.$$ | more -e echo echo " 0 Disconnect Session" echo echo echo "Enter Choice > <\b\b\c" ans=BAD while [ "$ans" = "BAD" ] do read ans gui_env=`sed -n "$ans p" $TMPDIR/expfile.$$ 2> /dev/null` rm $TMPDIR/expfile.$$ case $ans in 1|2|3|4|5|6|7|8|9) export LATERM=univwin clear echo echo "`tput smso` $INSTITUTION `tput rmso`" | sed -e :a -e 's/^.\{1,77\}$/ & /;ta' echo echo echo "`tput smso` Select Lawson Product Line `tput rmso`" | sed -e :a -e 's/^.\{1,77\}$/ & /;ta' echo . cv $gui_env cd $LAWDIR ## Get list of productlines ls -d1 */Admin 2> /dev/null | sed 's/\/Admin//g' \ | grep -v logan > $TMPDIR/expfile.$$ pr -n -t $TMPDIR/expfile.$$ 2> /dev/null | more -e echo case $COMMANDLINE in on) echo " 99 Drop to Commandline\n";; esac echo " 0 Disconnect Session" echo " B Back to Previous" echo echo echo "Enter Choice > <\b\b\c" ans2=BAD while [ "$ans2" = "BAD" ] do read ans2 gui_pl=`sed -n "$ans2 p" $TMPDIR/expfile.$$ 2> /dev/null` echo "Loading $gui_pl..." rm $TMPDIR/expfile.$$ case $ans2 in 1|2|3|4|5|6|7|8|9) lapm $gui_pl $MAINMENU;; 0|Q|q) exit;; "") exec $PGMPATH/login.menu;; B|b|P|p) exec $PGMPATH/login.menu;; 99) if [ $COMMANDLINE = on ]; then echo "Type 'exit' to return to the menu" PS1="$LAWENVNAME:\$PWD >" cd ksh exec $PGMPATH/login.menu else echo "Invalid Response.." fi;; *) echo "Invalid Response.." sleep 3 exec $PGMPATH/login.menu;; esac done exec $PGMPATH/login.menu;; 0|Q|q) exit ;; "setenv LATERM univwin") eval $ans read ans eval $ans read ans eval $ans;; "") exec $PGMPATH/login.menu;; *) echo "Invalid Response.." sleep 3 exec $PGMPATH/login.menu;; esac done