summaryrefslogtreecommitdiffstats
path: root/vmware/desktop-creator.old
blob: c7ab7b0cffb28583b68f53db059f751ae66c53fe (plain) (blame)
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