summaryrefslogtreecommitdiffstats
path: root/vmware/runvmware
diff options
context:
space:
mode:
Diffstat (limited to 'vmware/runvmware')
-rwxr-xr-xvmware/runvmware869
1 files changed, 0 insertions, 869 deletions
diff --git a/vmware/runvmware b/vmware/runvmware
deleted file mode 100755
index 07301539..00000000
--- a/vmware/runvmware
+++ /dev/null
@@ -1,869 +0,0 @@
-#!/bin/sh
-#
-# Description: Script for preparing VMware environment Diskless
-# X Stations and interactive session chooser (v4)
-#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 18-03-2006
-# Michael Janczyk <mj0@uni-freiburg.de>, 27-03-2007
-# Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg
-#
-# Version: 0.17.831
-#
-################################################################################
-
-
-### VERBOSE?/PATH ##############################################################
-# set verbose mode (set -x(v))
-#set -xv
-export PATH="${PATH}:/var/X11R6/bin:/usr/X11R6/bin"
-
-
-### HEADER SECTION #############################################################
-# write runvmware.conf
-runvmwareconfheader ()
-{
- echo "
- ##############################################################################
- ###### This configuration file was generated by 'runvmware', ######
- ###### dont use it for your own configurations - it will be overwritten ######
- ###### ######
-
- ###### identity ##############################################################
- displayName = \"${displayname}\"
- guestOS = \"${vmostype}\"
- config.version = \"${confver}\"
- virtualHW.version = \"${hver}\"
-
- memsize = \"${mem}\"
- numvcpus = \"1\"
-
- ###### ide-disks #############################################################
- ide0:0.mode = \"${np}\"
- ide0:0.present = \"${ide}\"
- ide0:0.fileName = \"${diskfile}\"
-
- ide1:0.present = \"${cdr_1}\"
- ide1:0.autodetect = \"TRUE\"
- ide1:0.fileName = \"auto detect\"
- ide1:0.deviceType = \"cdrom-raw\"
-
- ide1:1.present = \"${cdr_2}\"
- ide1:1.autodetect = \"TRUE\"
- ide1:1.fileName = \"auto detect\"
- ide1:1.deviceType = \"cdrom-raw\"
-
- ###### scsi-disks ############################################################
- scsi0.present = \"${scsi}\"
- scsi0.virtualDev = \"${hddrv}\"
- scsi0:0.mode = \"${np}\"
- scsi0:0.present = \"${scsi}\"
- scsi0:0.fileName = \"${diskfile}\"
-
- ###### 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 = \"auto detect\"
-
- floppy1.present = \"${floppyb}\"
- floppy1.fileType = \"file\"
- floppy1.fileName = \"${floppybname}\"
- floppy1.startConnected = \"TRUE\"
-
- ###### ports #################################################################
- parallel0.present = \"FALSE\"
-
- serial0.present = \"FALSE\"
-
- ###### shared folders ########################################################
- sharedFolder0.present = \"TRUE\"
- sharedFolder0.enabled = \"TRUE\"
- sharedFolder0.expiration = \"never\"
- sharedFolder0.guestName = \"Home\"
- sharedFolder0.hostPath = \"${HOME}\"
- sharedFolder0.readAccess = \"TRUE\"
- sharedFolder0.writeAccess = \"TRUE\"
- sharedFolder.maxNum = \"1\"
-
- ###### misc ##################################################################
- tmpDirectory = \"${tmpdir}\"
- mainMem.useNamedFile = \"FALSE\"
- snapshot.disabled = \"TRUE\"
- tools.syncTime = \"TRUE\"
- redoLogDir = \"${tmpdir}\"
- hints.hideAll = \"TRUE\"
- logging = \"FALSE\"
- isolation.tools.hgfs.disable = \"FALSE\"
- isolation.tools.dnd.disable = \"TRUE\"
- isolation.tools.copy.enable = \"TRUE\"
- isolation.tools.paste.enabled = \"TRUE\"
- gui.restricted = \"TRUE\"
- pref.hotkey.shift = \"TRUE\"
- pref.hotkey.control = \"TRUE\"
- pref.hotkey.alt = \"TRUE\"
- svga.maxWidth = \"${xres}\"
- svga.maxHeight = \"${yres}\"
- " \
- >${confile}
-
- # set the appropriate permissions for the vmware config file
- chmod u+rwx ${confile} >/dev/null 2>&1
-}
-
-
-preferencesheader ()
-{
- echo "
- ##############################################################################
- ###### This configuration file was generated by 'runvmware', ######
- ###### dont use it for your own configurations - it will be overwritten ######
- ###### ######
- ################################## Wichtig! ##################################
- ###### *.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. ######
-
- hints.hideAll = \"TRUE\"
- pref.exchangeSelections = \"TRUE\"
- pref.hotkey.shift = \"TRUE\"
- pref.tip.startup = \"FALSE\"
- pref.vmplayer.exit.vmAction = \"poweroff\"
- pref.vmplayer.fullscreen.autohide = \"TRUE\"
- pref.vmplayer.webUpdateOnStartup = \"FALSE\"
- prefvmx.defaultVMPath = \"${vmhome}\"
- prefvmx.mru.config = \"${confile}:\"
- tmpDirectory = \"${tmpdir}\"
- webUpdate.checkPeriod = \"manual\"
- pref.eula.size = \"2\"
- pref.eula.0.appName = \"VMware Player\"
- pref.eula.0.buildNumber = \"${vmbuild}\"
- pref.eula.1.appName = \"VMware Workstation\"
- pref.eula.1.buildNumber = \"${vmbuild}\"
- " \
- >${vmhome}/preferences
-}
-
-
-### VARIABLES SECTION ##########################################################
-# declaration of default variables
-# script variables
-last_changes=$(head -n 15 $0 | grep "@" | awk -F ", " '{print $2}' \
- | awk -F "-" '{print $3" "$2" "$1}' | sort -bfnr \
- | awk '{print $3"-"$2"-"$1}' | grep -m 1 [0-9])
-version=$(head -n 15 $0 | grep "# Version: " | awk '{print $3}')
-
-# hardware variables
-# temporary disk space for logs, etc...
-preftmpdir=/tmp/${USER}
-# there are two different kinds of tmp needed:
-# user config -> preferences for all *.vmx (especially that hidden ram image)
-# and per vmx config (written to runvmware.conf)
-if cat /proc/mounts|grep -e " /tmp" 2>/dev/null| grep -e "nfs" &>/dev/null
- then export tmpdir=/dev/shm/vmware
-else
- export tmpdir=$preftmpdir
-fi
-
-mac=
-declare -i mem=0
-declare -i memtest=0
-memopt=
-memhost=
-memmeg=
-memgig=
-permem=66
-# virtual devices
-ide="TRUE"
-scsi="FALSE"
-hddrv="lsilogic"
-cdr_1="FALSE"
-cdr_2="FALSE"
-floppya="FALSE"
-floppyb="FALSE"
-# place for the virtual floppy "B:"
-floppybname="/etc/vmware/loopimg/fd.img"
-# resolution
-hostres=$(xvidtune -show 2>/dev/null| grep -ve "^$")
-xres=$(echo "${hostres}" | awk '{print $3}')
-yres=$(echo "${hostres}" | awk '{print $7}')
-guestres=
-g_xres=
-g_yres=
-
-# VMware variables
-# VMware start options
-vmopt="-X -q"
-# configfile
-confile="${tmpdir}/runvmware.conf"
-vmhome="${HOME}/.vmware"
-vmdir="/var/lib/vmware"
-# templates dir
-vmtempl="${vmdir}/templ"
-# .desktop files directory
-xsessions="/usr/share/xsessions"
-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"'
-execute=()
-menu=
-# special Variables
-confver=8
-hver=4
-np="independent-nonpersistent"
-# set hostname: using original hostname and adding string "-vm"
-hostname="VM-${HOST}"
-# set samba workgroup
-workgroup="VMware-Workgroup"
-comment="Diskless X Station VMware Image"
-# image variables
-alias=
-diskfile=
-rightsfile=
-noimage=0
-ostype=
-vmostype=
-displayname="Diskless X Station VMware Image"
-# image checking variable
-filecheck=
-
-# command line variables
-# start with this this default commmand line options + extra
-defaults=$(grep -v "#.*" ${vmtempl}/defaults)
-# add command line opts to defaults
-# defaults will be overwritten by command line options
-lineopts=( `echo ${defaults} $@` )
-nofclopt=$(expr $# + $(echo ${defaults} | wc -w))
-silent=
-include=
-debug=0
-istart=
-xdm=
-comdef=
-
-
-### FUNCTIONS SECTION ##########################################################
-# function to write to stdout/logfile
-# logs labeled with $2=0 write to stdout, if debug set, write to logfile
-writelog ()
-{
- # write to stdout
- [ -z ${silent} ] && [ "$2" = "0" ] && echo -e "$1"
-
- # check if range given e.g. 0 0
- if [ -z "$2" ] || [ -z "$3" ];then
- echo -e "\n\nNO RANGE IN WRITELOG STATEMENT:\n$1\n\tPlease correct!\n"
- exit 1
- fi
-
- # log if level greater than 1 and log only from level $2 to level $3
- [ "${debug}" -ge "1" ] && [ "${debug}" -ge "$2" ] && [ "${debug}" -le "$3" ] \
- && echo -e "$1" >>${tmpdir}/runvmware.${debug}.log
-}
-
-
-help ()
-{
- cat <<EOH
-
-USAGE: $0 [--options]
-
-Image options:
- -i|--interactive interactive mode with image selection
- --xdm <all|vm> all lists xdm sessions and VMware images,
- vm lists only VMware images, use only w/ xdm
- -s|--start <image-name> start image /\${vmdir}/<image-name>.vmdk
- -a|--alias use aliases
- --silent no stdout from runvmware
- --mem <n(M(h))|n(G(h))> override autoallocation of memory, in percent
- m,M megabyte, g,G gigabyte, h,H reserve f. host
- --res <X_intxY_int> Maximum resolution of the guest os, e.g. 800x600
- --delay <n seconds> delay the start of the script n seconds
- --image <directory> specify image directory
- --persistent use persistent mode
- --vmostype <vmwareos> define VMware ostype
- --include <includefile> include code right before program start
- --displayaliases aliases you can use with option -a
- --floppya enable floppy disk
- --floppyb use /etc/vmware/fd-loop as floppy B,
- needed for exchanging files w/ VMware
-VMware options:
- --run <program> specify programm, e.g. vmware, vmplayer, ...
- --windowed start in windowed mode
- --edit only open config file in vmware (only VMware)
- --donotquit do not quit after image stopped (only VMware)
-runvmware options:
- -h|--help this help
- --version
- --debug <level> level 1 -> print stdout to file
-
- Dirk von Suchodoletz, Michael Janczyk
- <dirk@goe.net>, <mj0@uni-freiburg.de>
-
-EOH
-
- # print version , remove path
- echo -e "$0: LAST CHANGES $last_changes | VERSION $version\n" \
- | awk -F "/" '{print "\t\t"$NF}'
-
- exit 0
-}
-
-
-checkalias ()
-{
- if [ -r "${vmtempl}/alias" ]; then
-
- writelog "Checking alias for ${startvm}...\c" 0 1
-
- vmalias=$(grep -v "#.*" ${vmtempl}/alias | grep -w "${startvm}" \
- | awk '{print $1}')
- [ -n "${vmalias}" ] && startvm=${vmalias}
-
- writelog "finished\nResult:\n\tVMimage name:\t${startvm}\n" 0 1
-
- else
- writelog "NO alias file found: ${vmtempl}/alias" 0 1
- writelog "Try without option \"-a\"" 0 1
- exit 1
-
- fi
-}
-
-
-xdm_mode ()
-{
- # Xdailog test
- xdialog=$(which Xdialog)
- [ -z "${xdialog}" ] && \
- 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
-
- # set X background
- res=$(xvidtune -show | grep -wo "\".*\"" | sed "s/\"//g")
- if ! [ -f ${themesdir}/bootsplash/images/silent-${res}.jpg ]; then
- img=$(ls ${themesdir}/bootsplash/images/ | grep -m 1 "silent")
- display -window root ${themesdir}/bootsplash/images/${img}
- else
- display -window root ${themesdir}/bootsplash/images/silent-${res}.jpg
- fi
-
- dialogtitle='--rc-file ${themesdir}/Xdialog/gtkrc \
- --title "VMware Image Menu"'
-
- if [ "${xdm}" = "all" ]; then
- desktops=( `ls ${xsessions}/*.desktop 2>/dev/null \
- | grep -v "default.*" | sort -bf; \
- ls ${vmsessions}/*.desktop 2>/dev/null | sort -bf` )
- desktopsnr=$(echo "${#desktops[*]}")
- dialogtitle='--rc-file ${themesdir}/Xdialog/gtkrc \
- --title "Desktop / VMware-Image Menu"'
- fi
-}
-
-
-x_dialog ()
-{
- (( args=0 ))
- declare -i i=0
-
- while [ "${desktopsnr}" -gt "${args}" ]; do
-
- # 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
-
- # test if menu not empty?
- if [ -z "${menu}" ]; then
- Xdialog --infobox "No items found to display!!!
- For Vmware images add .desktop files to
- ${vmsessions}" 10 50 6000
- exit 1
- fi
-
- # echoing to file because Xdialog sux when used w/ quotes
- echo -e "Xdialog ${dialogtitle} \
- --screen-center \
- --fill \
- --no-wrap \
- --stdout \
- --no-tags \
- --ok-label \"START\" \
- --item-help \
- --menubox \"Please choose the image you would like to run:\" 35 80 0 \
- $menu 2>/dev/null" \
- > ${tmpdir}/Xdialog
-
-. ${tmpdir}/Xdialog
-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 ()
-{
- filecheck=$(LANG=us ls -lh ${diskfile} 2>&1)
- writelog "Filecheck:\n${filecheck}\n" 0 1
- noimage=$(echo ${filecheck} | grep -i "no such file or directory" | wc -l)
- rightsfile=${diskfile}
-
- # check if link
- if [ -L "${diskfile}" ]; then
- # take link target
- rightsfile=$(ls -lh ${diskfile} 2>&1 | awk -F "-> *" '{print $2}')
- rightsfile=${vmdir}/${rightsfile}
- filecheck=$(LANG=us ls -lh ${rightsfile} 2>&1)
- fi
-
- # does file exist
- if [ "${noimage}" -ge "1" ]; then
- writelog "Vmware Image Problem:\c" 0 0
- writelog "\tThe image you've specified doesn't exist." 0 0
- writelog "Filecheck says:\c" 0 1
- writelog "\t\t${diskfile}:\n\t\t\tNo such file or directory" 0 1
- writelog "Hint:\c" 0 0
- writelog "\t\t\tCompare spelling of the image with your options.\n" 0 0
- exit 1
- fi
-
- # readable?
- if ! [ -r "${diskfile}" >/dev/null 2>&1 \
- -o -r "${diskfile}" >/dev/null 2>&1 ]; then
- writelog "Vmware Image Problem:\c" 0 1
- writelog "\tThe image you've specified has wrong rights." 0 1
- writelog "Filecheck says:\t\t`echo ${filecheck} \
- | awk '{print $1" "$3" "$4}'` ${rightsfile}" 0 1
- writelog "Hint:\t\t\tChange rights with: chmod a+r ${rightsfile}\n" 0 0
- exit 1
- fi
-
- # writable (for persistent-mode)?
- if ! [ -w "${diskfile}" >/dev/null 2>&1 \
- -o -w "${diskfile}" >/dev/null 2>&1 ] \
- && [ "${np}" = "independent-persistent" ]; then
- writelog "Vmware Image Problem:\c" 0 1
- writelog "\tThe image you've specified has wrong rights." 0 1
- writelog "Filecheck says:\t\t`echo ${filecheck} \
- | awk '{print $1" "$3" "$4}'` ${rightsfile}" 0 1
- writelog "Hint:\t\t\tUse nonpersistent-mode or change rights to rw\n" 0 0
- exit 1
- fi
-}
-
-
-#### INTERPRET COMMAND LINE OPTIONS ############################################
-# print help if no clo
-if [ ${nofclopt} = "0" ]; then
- help
- exit 0
-fi
-
-# interpretation of command line arguments
-(( args=0 ))
-while [ ${nofclopt} -gt "${args}" ]; do
- case "${lineopts[${args}]}" in
- -h|--help)
- help
- ;;
- --version)
- echo -e "\n$0: LAST CHANGES ${last_changes} | VERSION ${version}\n" \
- | awk -F "/" '{print "\t"$NF}'
- exit 0
- ;;
- -i|--interactive)
- istart="TRUE"
- ;;
- --xdm)
- (( args=${args}+1 ))
- xdm=${lineopts[${args}]}
- xdmstart="TRUE"
- ;;
- -s|--start)
- (( args=${args}+1 ))
- startvm=${lineopts[${args}]}
- sstart="TRUE"
- ;;
- -a|--alias)
- alias="TRUE"
- ;;
- --silent)
- silent="TRUE"
- ;;
- --displayaliases)
- cat ${vmtempl}/alias; exit 0
- ;;
- --delay)
- (( args=${args}+1 ))
- sleep ${lineopts[${args}]}
- ;;
- --image)
- (( args=${args}+1 ))
- vmdir=${lineopts[${args}]}
- ;;
- --persistent)
- np="independent-persistent"
- ;;
- --include)
- (( args=${args}+1 ))
- include=${lineopts[${args}]}
- ;;
- --vmostype)
- (( args=${args}+1 ))
- vmostype=${lineopts[${args}]}
- comdef="TRUE"
- ;;
- --mem)
- (( args=${args}+1 ))
- memopt=${lineopts[${args}]}
- ;;
- --res)
- (( args=${args}+1 ))
- guestres=${lineopts[${args}]}
- ;;
- --run)
- (( args=${args}+1 ))
- vmrun=${lineopts[${args}]}
- ;;
- --debug)
- (( args=${args}+1 ))
- debug=${lineopts[${args}]}
- ;;
- --windowed)
- vmopt=$(echo ${vmopt} | sed -e "s,-X,-x,")
- ;;
-
- --floppya)
- floppya="TRUE"
- ;;
- --floppyb)
- floppyb="TRUE"
- ;;
- --edit)
- vmopt=""
- ;;
- --donotquit)
- vmopt=$(echo ${vmopt} | sed -e "s,-q,,")
- ;;
- *)
- echo -e "\n\tOption\"${lineopts[${args}]}\" not found, please correct.\n"
- sleep 1
- help
- ;;
- esac
- (( args=${args}+1 ))
-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)
- exec ${args_dial}
- exit 0
-elif [ -n "${xdmstart}" -a -z "${xdm}" ]; then
- xterm -e 'echo -e "\n\n\n\n\n\n\t\t\tWrong --xdm option! \
- \n\t\t\tOnly all or vm possible.\
- \n\n\t\t\tClosing in 3 seconds."; sleep 3' && exit 1
-fi
-
-# 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
- exit 1
-fi
-
-# logo for console
-if [ -z ${silent} ]; then
-cat <<EOL
-
- .----.--.--.-----.--.--.--------.--.--.--.---.-.----.-----.
- | _| | | | | | | | | | _ | _| -__|
- |__| |_____|__|__|\___/|__|__|__|________|___._|__| |_____|
- Script for preparing VMware environment...(v${version})
-
-
-EOL
-writelog "Starting...`echo ${np} | sed -e \"s,i.*-,,g\" \
- | tr [a-z] [A-Z]`-mode\n" 0 0
-
-fi
-
-
-### CHECK MACHINE SETUP ########################################################
-# start logging, because now we have the directories created ;)
-writelog "##################################################" 1 99
-writelog "#\n# File created by $0 (v.${version})\n# on `date`" 1 99
-writelog "# LOGLEVEL=${debug}\n#" 1 99
-writelog "##################################################\n" 1 99
-# repeat only for logfile ;)
-writelog "Starting...`echo ${np} | sed -e \"s,i.*-,,g\" \
- | tr [a-z] [A-Z]`-mode\n" 1 1
-
-# log disksetup
-writelog "Directories:
- \tTmpdir:\t\t${tmpdir}\n\tVMhome:\t\t${vmhome}\n\tTmpdir info:\
- \t`mount | grep -i "/tmp "`\n" 0 1
-
-# configuring MAC address: first four bytes are fixed (00:50:56:0D) the
-# last two bytes are taken from the local network adaptor
-writelog "Starting hardware / device detection...\c" 0 1
-
-mac=$(/sbin/ifconfig eth0 | grep eth0 | sed -e "s, ,,g" \
- | awk -F ":" '{print $(NF-1)":"$NF}')
-
-# get memory in MB
-memtest=$(expr $(grep -i "memtotal" /proc/meminfo | awk '{print $2}') / 1024)
-
-# check if command line option given and calculate memory for vmware
-if [ -n "${memopt}" ]; then
- # memory allocation for host or guest?
- memhost=`echo ${memopt} | grep -i "h"`\
- && memopt=`echo ${memopt} | sed -e "s,[h,H],,"`
- # memory given in megabyte
- memmeg=`echo ${memopt} | grep -i "m"`
- # memory given in gigabyte
- memgig=`echo ${memopt} | grep -i "g"`
- # remove m or M
- [ -n "${memmeg}" ] && mem=$(echo ${memopt} | sed -e "s,[m,M],,")
- # remove g or G and convert to megabyte
- [ -n "${memgig}" ] && mem=$(echo ${memopt} | sed -e "s,[g,G],,") \
- && mem=${mem}*1024
- # if no m or g, then it is percent
- [ -z "${memmeg}" ] && [ -z "${memgig}" ] && mem=${memtest}/100*${memopt}/4*4
- # memory allocation for host or guest? If host calculate for guest.
- [ -n "${memhost}" ] && mem=${memtest}-${mem}
- # else use ${permem} variable to calculate memory percentage for vmware
-else mem=${memtest}/100*${permem}/4*4
-fi
-
-# check memory range
-memtest=${memtest}-128
-if [ "${mem}" -lt "128" ] || [ "${mem}" -gt "${memtest}" ]; then
- writelog "\n\n\tYour memory is out of range: ${mem} MB.
- \tMin. 128 MB for host and guest!\n\tTry --mem option.\n" 0 1
- exit 1
-fi
-
-# look for cdrom,dvd and floppy and add them to the vm config file
-if [ -L /dev/cdrom ] ; then
- cdr_1="TRUE"
-fi
-
-if [ -L /dev/cdrom1 ] ; then
- cdr_2="TRUE"
-fi
-
-# check for floppy controller
-test ! -d /sys/block/fd0 && floppya="FALSE"
-
-# guest resolution
-if [ -n "${guestres}" ]; then
- g_xres=$(echo "${guestres}" | awk -F "x" '{print $1}')
- g_yres=$(echo "${guestres}" | awk -F "x" '{print $2}')
- if [ "${g_xres}" -ge "640" -a "${g_xres}" -le "${xres}" \
- -a "${g_yres}" -ge "480" -a "${g_yres}" -le "${yres}" ]; then
- xres=${g_xres}
- yres=${g_yres}
- else
- writelog "\n\n\tSpecified resolution is not in range!
- \tRange: 640x480 - ${xres}x${yres}
- \tJumping back to resolution of Host.\n"
- fi
-fi
-
-writelog "finished\nResults:\n\tMAC:\t\t00:50:56:0D:${mac}\n\tMem:\t\t${mem} MB
- \tMax. res.:\t${xres}x${yres}\n\tFloppy_A:\t${floppya}\n\tFloppy_B:\
- \t${floppyb}\n\tCD-ROM_1:\t${cdr_1}\n\tCD-ROM_2:\t${cdr_2}\n" 0 1
-
-
-### SELECT VIRTUAL IMAGE #######################################################
-# interactive mode
-if [ -n "${istart}" ]; then
- writelog "Starting interactive mode...\c" 0 0
-
- # check for session files
- if [ -z "${desktops}" ]; then
- writelog "\rNo .desktop files found in ${vmsessions} for option -i" 0 99
- writelog "Please use option -s and check your configuration \n" 0 0
- exit 1
- fi
-
- # check for Xdialog
- x_dialog_check
-
- # create menu, etc...
- startvm=$(x_dialog)
-
- if [ -z "${startvm}" ]; then
- writelog "\rNo image selected, please retry or use option -s\n" 0 0
- writelog "No image was selected (option -i); \c" 2 2
- writelog "return value is: ${startvm}\n" 2 2
- exit 1
- fi
-
- writelog "finished.\nResult:\n\tVMimage:\t${startvm}\n" 0 1
-fi
-
-# aliases
-[ -n "${alias}" ] && checkalias
-
-# image allocation
-writelog "Starting image detection...\c" 0 1
-
-diskfile="${vmdir}/${startvm}.vmdk"
-
-# check if IDE or SCSI
-hddrv=$(grep -m 1 -ia "ddb.adapterType" ${diskfile} | awk -F "\"" '{print $2}')
-if [ "${hddrv}" = "ide" ]; then
- ide="TRUE"
- scsi="FALSE"
-elif [ "${hddrv}" = "lsilogic" ]; then
- ide="FALSE"
- scsi="TRUE"
-elif [ "${hddrv}" = "buslogic" ]; then
- ide="FALSE"
- scsi="TRUE"
-fi
-
-# check if ${vmostype} defined via command line
-if [ -z "${comdef}" ]; then
- ostype=$(echo ${startvm} | awk -F "-" '{print $1}')
- vmostype=$(grep -v "#.*" ${vmtempl}/ostype | grep -w "${ostype}" \
- | awk '{print $1}')
-
- # if ${ostype} not found use else statement
- vmostype=${vmostype:-"other"}
-fi
-
-# define name for VMware window
-displayname=$(grep -m 1 -i "name" \
- ${vmsessions}/*${startvm}.desktop | awk -F "=" '{print $2}')
-# if variable not set
-displayname=${displayname:-"VMware Image"}
-
-writelog "finished\nResults:\n\tDiskfile:\t${diskfile}\n\tDisktype:\t${hddrv}
- \tVMostype:\t${vmostype}\n\tDisplayname:\t${displayname}\n" 0 1
-
-# check if image exists, etc...
-filecheck
-
-
-### WRITE CONFIGURATION FILES / RUN VMWARE(-Player) ############################
-# ...with the automatically written config file
-
-# include file which is given via command line
-[ -n "${include}" ] && . ${include}
-
-# copy VMware (-Player) bios
-cp ${vmtempl}/nvram.5.0 ${tmpdir}/nvram 2>&1 >/dev/null
-
-# adjust volume
-writelog "Unmuting sound...\c" 0 0
-amixer -q sset Master 28 unmute
-amixer -q sset PCM 28 unmute
-writelog "finished\n" 0 0
-
-if [ `which vmplayer 2>/dev/null` ] && [ -z "${vmrun}" ] \
- || [ "${vmrun}" = "vmplayer" ]; then
-
- # VMware build
- vmbuild=$(vmplayer -v | awk -F "-" '{print $2}')
-
- # create preferences
- preferencesheader
-
- # create VMware startup file
- runvmwareconfheader
-
- writelog "\nStarting VMplayer..." 0 0
- vmopt=$(echo ${vmopt} | sed -e "s,-q,," -e "s,-x,,") # remove unsupported opts
- # run VMplayer
- vmplayer ${vmopt} ${confile} 2>&1 >/dev/null
-
-elif [ `which vmware 2>/dev/null` ] && [ -z "${vmrun}" ] \
- || [ "${vmrun}" = "vmware" ]; then
-
- # VMware build
- vmbuild=$(vmware -v | awk -F "-" '{print $2}')
-
- # create preferences
- preferencesheader
-
- # create VMware startup file
- runvmwareconfheader
-
- # copy licence file to VMware directory
- cp /var/lib/vmware/templ/license.ws.5.0 ${vmhome} 2>&1 >/dev/null
- writelog "\nStarting VMware..." 0 0
- # run VMware
- vmware ${vmopt} ${confile} 2>&1 >/dev/null
-
-else
- writelog "\nNo VMware/VMPlayer found!\n" 0 99
- exit 1
-fi
-
-writelog "\nBye. \n" 0 0
-exit 0
-################################################################################