From 322b7f417507a4749f1ab55e8611185a9782f203 Mon Sep 17 00:00:00 2001 From: Michael Janczyk Date: Wed, 26 Apr 2006 17:15:54 +0000 Subject: session chooser git-svn-id: http://svn.openslx.org/svn/openslx/ld4@197 95ad53e4-c205-0410-b2fa-d234c58c8868 --- vmware/defaultwm | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100755 vmware/defaultwm (limited to 'vmware') diff --git a/vmware/defaultwm b/vmware/defaultwm new file mode 100755 index 00000000..62a63cc1 --- /dev/null +++ b/vmware/defaultwm @@ -0,0 +1,102 @@ +#!/bin/sh +# +# session chooser +# +# Michael Janczyk +# +# Last changes: 26-04-2006 +# + + + +x_dialog () { + + xsessions="/usr/share/xsessions" + vmsessions="/var/lib/vmware/vmsessions" + tmpdir="/tmp" + menu= + execute= + + + desktops=( `ls ${xsessions} | grep -x ".*desktop" \ + | grep -v "default.*" 2>/dev/null` ) + xdesktopsnr=$(echo "${#desktops[*]}") + desktops=( `ls ${xsessions} | grep -x ".*desktop" \ + | grep -v "default.*" 2>/dev/null; \ + ls ${vmsessions} | grep -x ".*desktop" 2>/dev/null` ) + desktopsnr=$(echo "${#desktops[*]}") + + + (( args=0 )) + declare -i i=0 + + while [ "${xdesktopsnr}" -gt "${args}" ]; do + # exec in .desktop + execute[${i}]=$(grep -m 1 -i "exec" ${xsessions}/${desktops[${args}]} \ + | awk -F "=" '{print $2}') + menu="$menu \"\${execute[${i}]}\"" + i=${i}+1 + + # name in .desktop + execute[${i}]=$(grep -m 1 -i "name" ${xsessions}/${desktops[${args}]} \ + | awk -F "=" '{print $2}') + execute[${i}]=${execute[${i}]:-`echo ${execute[${i}-1]} | sed -e "s,-, ,g"`} + menu="$menu \"\${execute[${i}]}\"" + i=${i}+1 + + # comment in .desktop + execute[${i}]=$(grep -m 1 -i "comment" ${xsessions}/${desktops[${args}]} \ + | awk -F "=" '{print $2}') + execute[${i}]=${execute[${i}]:-"No comment"} + menu="$menu \"\${execute[${i}]}\"" + i=${i}+1 + + (( args=${args}+1 )) + done + + while [ "${desktopsnr}" -gt "${args}" ]; do + # exec in .desktop + execute[${i}]=$(grep -m 1 -i "exec" ${vmsessions}/${desktops[${args}]} \ + | awk -F "=" '{print $2}') + menu="$menu \"\${execute[${i}]}\"" + i=${i}+1 + + # name in .desktop + execute[${i}]=$(grep -m 1 -i "name" ${vmsessions}/${desktops[${args}]} \ + | awk -F "=" '{print $2}') + execute[${i}]=${execute[${i}]:-`echo ${execute[${i}-1]} | sed -e "s,-, ,g"`} + menu="$menu \"\${execute[${i}]}\"" + i=${i}+1 + + # comment in .desktop + execute[${i}]=$(grep -m 1 -i "comment" ${vmsessions}/${desktops[${args}]} \ + | awk -F "=" '{print $2}') + execute[${i}]=${execute[${i}]:-"No comment"} + menu="$menu \"\${execute[${i}]}\"" + i=${i}+1 + + (( args=${args}+1 )) + done + + # --stderr because of 1>/dev/null + # echoing to file because Xdialog sux when used w/ quotes + echo -e "Xdialog --title \"VMware Image Menu\" \ + --screen-center \ + --fill \ + --no-wrap \ + --stderr \ + --no-tags \ + --ok-label \"START\" \ + --item-help \ + --menubox \"Please choose the image you would like to run:\" 35 80 0 \ + $menu 1>/dev/null" \ + > ${tmpdir}/Xdialog + + . ${tmpdir}/Xdialog + rm -f ${tmpdir}/Xdialog +} + +args_dial=$(x_dialog 2>&1) # 2>&1, see function +exec ${args_dial} + +exit 0 -- cgit v1.2.3-55-g7522