1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#!/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
|