#!/bin/sh vmdir="." && cd ${vmdir} # remove prefixes: index 1_, 2_ for sorting ;) prefixes=( `ls vmsessions/*.desktop | grep "[0-9]_" | sed -e "s,vmsessions/,," \ | awk -F "_" '{print $1}'` ) suffixes=( `ls vmsessions/*.desktop | grep "[0-9]_" | sed -e "s,vmsessions/,," \ | sed -e "s,.*_,,"` ) prefixnr=$(echo "${#prefixes[*]}") (( args=0 )) while [ "${prefixnr}" -gt "${args}" ]; do mv vmsessions/${prefixes[${args}]}_${suffixes[${args}]} \ vmsessions/${suffixes[${args}]} 2>/dev/null (( args=${args}+1 )) done # begin oldesktops=( `ls vmsessions/*.desktop | sed -e "s,.desktop,," -e "s,vmsessions/,," `) oldesktopsnr=$(echo "${#oldesktops[*]}") desktops=( `ls *.act | sed -e "s,.act,,"` ) desktopsnr=$(echo "${#desktops[*]}") count=$(expr ${oldesktopsnr} + ${desktopsnr}) (( args=0 )) while [ "${count}" -gt "${args}" ]; do # remove obsolete desktop files if [ -e "vmsessions/${oldesktops[${args}]}.desktop" \ -a ! -e "${oldesktops[${args}]}.act" ]; then echo -e "\nMoving vmsessions/${oldesktops[${args}]}.desktop to backup/old.desktop\n" mv -f "vmsessions/${oldesktops[${args}]}.desktop" "backup/old.desktop" rm -f "vmsessions/${oldesktops[${args}]}.desktop~" fi # create new entry if [ -e "${desktops[${args}]}.act" \ -a ! -e "vmsessions/${desktops[${args}]}.desktop" ]; then echo -e "\nCreating vmsessions/${desktops[${args}]}.desktop\n" # convert to utf-8 iconv -c -f utf-8 -t utf-8 < ${desktops[${args}]}.xml \ > ${desktops[${args}]}.xml.utf execute=$(grep "image_.*param" "${desktops[${args}]}.xml.utf" 2>/dev/null \ | awk -F "\"" '{print $2}' | sed -e "s,.vmdk,,") name=$(grep "short_.*param" "${desktops[${args}]}.xml.utf" 2>/dev/null \ | sed -e "s,&.*;,; ,g" | awk -F "\"" '{print $2}') comment=$(grep "long_.*param" "${desktops[${args}]}.xml.utf" 2>/dev/null \ | awk -F "\"" '{print $2}') slxgrp=$(grep "slxgrp" "${desktops[${args}]}.xml.utf" 2>/dev/null \ | awk -F "\"" '{print $2}') xdm=$(grep "xdm" "${desktops[${args}]}.xml.utf" 2>/dev/null \ | awk -F "\"" '{print $2}') echo "$slxgrp , $xdm" # check if set execute=${execute:-"${desktops[${args}]}"} name=${name:-"${desktops[${args}]}"} comment=${comment:-""} slxgrp=${SLXGrp:-"default"} xdm=${XDM:-"false"} echo "$slxgrp , $xdm" rm -f ${desktops[${args}]}.xml.utf sed -e "s%Exec=.*%Exec=${execute}%" \ -e "s%TryExec=.*%TryExec=/var/X11R6/bin/${execute}%" \ -e "s%Name=.*%Name=${name}%" \ -e "s%Comment=.*%Comment=${comment}%" \ templ/template.desktop \ > vmsessions/${desktops[${args}]}.desktop cat vmsessions/${desktops[${args}]}.desktop fi (( args=${args}+1 )) done # rename again (( args=0 )) while [ "${prefixnr}" -gt "${args}" ]; do mv vmsessions/${suffixes[${args}]} \ vmsessions/${prefixes[${args}]}_${suffixes[${args}]} 2>/dev/null (( args=${args}+1 )) done rm -f *.xml.utf