summaryrefslogblamecommitdiffstats
path: root/vmware/desktop-creator
blob: 6948b1bbc620082d2ff7421aa9cc4ac598f17e71 (plain) (tree)

























































































                                                                                        
#!/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