summaryrefslogtreecommitdiffstats
path: root/vmware
diff options
context:
space:
mode:
authorMichael Janczyk2006-04-26 19:15:54 +0200
committerMichael Janczyk2006-04-26 19:15:54 +0200
commit322b7f417507a4749f1ab55e8611185a9782f203 (patch)
tree2625df6ca0895bcf138d5d36a7c47848570fea68 /vmware
parentScript and Data for automatic creation of a .deb package for Debian based sys... (diff)
downloadcore-322b7f417507a4749f1ab55e8611185a9782f203.tar.gz
core-322b7f417507a4749f1ab55e8611185a9782f203.tar.xz
core-322b7f417507a4749f1ab55e8611185a9782f203.zip
session chooser
git-svn-id: http://svn.openslx.org/svn/openslx/ld4@197 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'vmware')
-rwxr-xr-xvmware/defaultwm102
1 files changed, 102 insertions, 0 deletions
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 <mj0@uni-freiburg.de>
+#
+# 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