#!/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}%" \
-e "s%SLXGrp=.*%SLXGrp=${slxgrp}%" \
-e "s%XDM=.*%XDM=${xdm}%" \
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