From efd062eee48f820443d3873590f758f8bd29b6f3 Mon Sep 17 00:00:00 2001 From: Michael Janczyk Date: Thu, 9 Nov 2006 15:40:23 +0000 Subject: new runvmware functionality vmimages.desktop is now created automatically when not all image shown in xdm menu new variables slxgrp and xdm in .desktop-files. if slxgrp set in machine-setup, only those images will be shown. xdm=true defines if image is shown in the xdm-menu functions-default for suse, but it contains a nearly distro intependend kdmrc creation, if no theme built /w mkdxsini... -s themename then kdm will start /wo a theme git-svn-id: http://svn.openslx.org/svn/openslx/trunk@504 95ad53e4-c205-0410-b2fa-d234c58c8868 --- vmware/kursimages.desktop | 8 --- vmware/runvmware | 122 ++++++++++++++++++++-------------------------- vmware/vmimages.desktop | 13 ----- 3 files changed, 52 insertions(+), 91 deletions(-) delete mode 100644 vmware/kursimages.desktop delete mode 100644 vmware/vmimages.desktop (limited to 'vmware') diff --git a/vmware/kursimages.desktop b/vmware/kursimages.desktop deleted file mode 100644 index 5e8d2838..00000000 --- a/vmware/kursimages.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -X-SuSE-translate=true -Encoding=UTF-8 -Type=XSession -Exec=kursimages -TryExec=/var/X11R6/bin/kursimages -Name=Weitere Kursimages -Comment=Windows und Linux VMware Images diff --git a/vmware/runvmware b/vmware/runvmware index fd380955..9a1e0e28 100755 --- a/vmware/runvmware +++ b/vmware/runvmware @@ -4,18 +4,14 @@ # X Stations and interactive session chooser (v4) # # Author(s): Dirk von Suchodoletz , 18-03-2006 -# Michael Janczyk , 27-10-2006 +# Michael Janczyk , 09-11-2006 # Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg # -# Version: 0.16.473 +# Version: 0.16.504 # ################################################################################ -### read from machine-setup (for slxgrp) ####################################### -. /etc/machine-setup - - ### VERBOSE? ################################################################### # set verbose mode (set -x(v)) #set -xv @@ -40,7 +36,6 @@ runvmwareconfheader () memsize = \"${mem}\" numvcpus = \"1\" - ###### ide-disks ############################################################# ide0:0.mode = \"${np}\" ide0:0.present = \"TRUE\" @@ -54,28 +49,23 @@ runvmwareconfheader () ide1:1.fileName = \"${cdr_2_name}\" ide1:1.deviceType = \"cdrom-raw\" - ###### scsi-disks ############################################################ scsi0.present = \"FALSE\" - ###### nics ################################################################## ethernet0.present = \"TRUE\" ethernet0.addressType = \"static\" ethernet0.connectionType = \"bridged\" ethernet0.address = \"00:50:56:0D:${mac}\" - ###### sound ################################################################# sound.present = \"TRUE\" sound.virtualDev = \"es1371\" - ###### usb ################################################################### usb.present = \"TRUE\" usb.generic.autoconnect = \"TRUE\" - ###### floppies ############################################################## floppy0.present = \"${floppya}\" floppy0.fileName = \"/dev/fd0\" @@ -85,13 +75,11 @@ runvmwareconfheader () floppy1.fileName = \"${floppybname}\" floppy1.startConnected = \"TRUE\" - ###### ports ################################################################# parallel0.present = \"FALSE\" serial0.present = \"FALSE\" - ###### shared folders ######################################################## sharedFolder0.present = \"TRUE\" sharedFolder0.enabled = \"TRUE\" @@ -102,7 +90,6 @@ runvmwareconfheader () sharedFolder0.writeAccess = \"TRUE\" sharedFolder.maxNum = \"1\" - ###### misc ################################################################## tmpDirectory = \"${tmpdir}\" mainMem.useNamedFile = \"FALSE\" @@ -121,7 +108,6 @@ runvmwareconfheader () pref.hotkey.alt = \"TRUE\" svga.maxWidth = \"${xres}\" svga.maxHeight = \"${yres}\" - " \ >${confile} @@ -141,7 +127,8 @@ preferencesheader () ###### *.vmem wird immer angelegt und frisst soviel Speicher, wie fuer ###### ###### den Gast vorgesehen. Sollte nicht im tempfs liegen. NFS OK, da ###### ###### IO nur einmal beim Start erheblich. Wird gesteuert ueber ###### - ###### tmpDirectory = /nfs-viel-platz und darin wird dann vmware-\$user ###### ###### angelegt. ###### + ###### tmpDirectory = /nfs-viel-platz und darin wird dann vmware-\$user ###### + ###### angelegt. ###### hints.hideAll = \"TRUE\" pref.exchangeSelections = \"TRUE\" @@ -159,7 +146,6 @@ preferencesheader () pref.eula.0.buildNumber = \"${vmbuild}\" pref.eula.1.appName = \"VMware Workstation\" pref.eula.1.buildNumber = \"${vmbuild}\" - " \ >${vmhome}/preferences } @@ -195,7 +181,7 @@ floppyb="FALSE" # place for the virtual floppy "B:" floppybname="/etc/vmware/loopimg/fd1.img" # resolution -hostres=$(xvidtune -show | grep -ve "^$") +hostres=$(xvidtune -show 2>/dev/null| grep -ve "^$") xres=$(echo "${hostres}" | awk '{print $3}') yres=$(echo "${hostres}" | awk '{print $7}') guestres= @@ -215,13 +201,11 @@ vmdir="/var/lib/vmware" vmtempl="${vmdir}/templ" # .desktop files directory xsessions="/usr/share/xsessions" -vmsessions="${vmdir}/vmsessions" +vmsessions="/etc/X11/sessions/runvmware" themesdir="/var/lib/openslx/themes" desktops=( `ls ${vmsessions}/*.desktop 2>/dev/null` ) desktopsnr=$(echo "${#desktops[*]}") dialogtitle='--title "VMware Image Menu"' -slxgrp=$(echo ${slxgrp} | tr [A-Z] [a-z]) -slxgrptest= execute=() menu= # special Variables @@ -386,33 +370,25 @@ x_dialog () while [ "${desktopsnr}" -gt "${args}" ]; do - # check for slxgrp - slxgrptest=$(grep -m 1 -i "slxgrp" ${desktops[${args}]} \ - | awk -F "=" '{print $2}' | tr [A-Z] [a-z]) - if [ -z "${slxgrp}" -o "${slxgrp}" = "${slxgrptest}" -o "${slxgrp}" = "default" ]; \ - then - - # exec in .desktop - execute[${i}]=$(grep -m 1 -i "exec" ${desktops[${args}]} \ - | awk -F "=" '{print $2}') - menu="$menu \"\${execute[${i}]}\"" - i=${i}+1 - - # name in .desktop - execute[${i}]=$(grep -m 1 -i "name" ${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" ${desktops[${args}]} \ - | awk -F "=" '{print $2}') - execute[${i}]=${execute[${i}]:-"No comment"} - menu="$menu \"\${execute[${i}]}\"" - i=${i}+1 - - fi + # exec in .desktop + execute[${i}]=$(grep -m 1 -i "exec" ${desktops[${args}]} \ + | awk -F "=" '{print $2}') + menu="$menu \"\${execute[${i}]}\"" + i=${i}+1 + + # name in .desktop + execute[${i}]=$(grep -m 1 -i "name" ${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" ${desktops[${args}]} \ + | awk -F "=" '{print $2}') + execute[${i}]=${execute[${i}]:-"No comment"} + menu="$menu \"\${execute[${i}]}\"" + i=${i}+1 (( args=${args}+1 )) done @@ -443,6 +419,19 @@ x_dialog () rm -f ${tmpdir}/Xdialog } +x_dialog_check () +{ + if ! [ `which Xdialog 2>/dev/null` ]; then + writelog "\rXdialog not found! " 0 99 + writelog "Please install Xdialog for interactive mode, \c" 0 0 + writelog "or use option -s.\n" 0 0 + # for non-console starts + xterm -e 'echo -e "\n\n\n\n\n\n\t\t\tNo Xdialog installed!!!\ + \n\n\t\t\tClosing in 3 seconds."; sleep 3' + exit 1 + fi +} + filecheck () { @@ -589,7 +578,7 @@ while [ ${nofclopt} -gt "${args}" ]; do vmopt=$(echo ${vmopt} | sed -e "s,-q,,") ;; *) - echo -e "\n\tOption \"${lineopts[${args}]}\" not found, please correct.\n" + echo -e "\n\tOption\"${lineopts[${args}]}\" not found, please correct.\n" sleep 1 help ;; @@ -599,21 +588,12 @@ done ### STARTING ################################################################### -# create environment -# remove leftover locks from former runs, -# problems may occure if you run more then one vmware with this script -rm -f ${tmpdir}/*LOCK >/dev/null 2>&1 -rm -f ${tmpdir}/*.${debug}.log >/dev/null 2>&1 - -# create vmware directories -mkdir -p ${tmpdir} >/dev/null 2>&1 -mkdir -p ${vmhome} >/dev/null 2>&1 - # NO X-server no runvmware ;) [ -z "$DISPLAY" ] && echo -e "\n\tStart only within a desktop!\n" && exit 1 # if --xdm set don't go further, only used for xdm starts if [ "${xdm}" = "all" -o "${xdm}" = "vm" ]; then + x_dialog_check xdm_mode args_dial=$(x_dialog 2>&1) # 2>&1, see function exec ${args_dial} @@ -624,6 +604,16 @@ elif [ -n "${xdmstart}" -a -z "${xdm}" ]; then \n\n\t\t\tClosing in 3 seconds."; sleep 3' && exit 1 fi +# create environment +# remove leftover locks from former runs, +# problems may occure if you run more then one vmware with this script +rm -f ${tmpdir}/*LOCK >/dev/null 2>&1 +rm -f ${tmpdir}/*.${debug}.log >/dev/null 2>&1 + +# create vmware directories +mkdir -p ${tmpdir} >/dev/null 2>&1 +mkdir -p ${vmhome} >/dev/null 2>&1 + # if not interactive mode or image spezified via command line stop if [ -z "${istart}" -a -z "${sstart}" ]; then writelog "\n\tSpecify image to start /w -s or run interactive mode -i!\n" 0 0 @@ -747,15 +737,7 @@ if [ -n "${istart}" ]; then fi # check for Xdialog - if ! [ `which Xdialog 2>/dev/null` ]; then - writelog "\rXdialog not found! " 0 99 - writelog "Please install Xdialog for interactive mode, \c" 0 0 - writelog "or use option -s.\n" 0 0 - # for non-console starts - xterm -e 'echo -e "\n\n\n\n\n\n\t\t\tNo Xdialog installed!!!\ - \n\n\t\t\tClosing in 3 seconds."; sleep 3' - exit 1 - fi + x_dialog_check # create menu, etc... startvm=$(x_dialog 2>&1) # 2>&1, see function @@ -790,7 +772,7 @@ fi # define name for VMware window displayname=$(grep -m 1 -i "name" \ - ${vmsessions}/*${startvm}.desktop | awk -F "=" '{print $2}') + ${vmsessions}/${startvm}.desktop | awk -F "=" '{print $2}') # if variable not set displayname=${displayname:-"VMware Image"} diff --git a/vmware/vmimages.desktop b/vmware/vmimages.desktop deleted file mode 100644 index a7c6c7f0..00000000 --- a/vmware/vmimages.desktop +++ /dev/null @@ -1,13 +0,0 @@ -[Desktop Entry] -X-SuSE-translate=true -Encoding=UTF-8 -Type=XSession -Exec=vmmenu -TryExec=/var/X11R6/bin/vmmenu -Name=Weitere VMware-Images -Comment=Menü mit VMware-Images starten -# VMware Images die auch unter kdm angezeigt werden sollen müssen nach -# .../vmsessions/kdm kopiert werden. Falls nicht alle Images unter .../kdm -# landen, können alle images noch über diese .desktop-Datei angezeigt werden. -# Der KDM Menüpunkt heißt wie unter NAme= definiert und startet Xdialog mit -# allen VMware-Images. -- cgit v1.2.3-55-g7522