#!/bin/bash

winedir="$HOME/.wine"
fakewindir="$winedir/fake_windows"
wineconf="$winedir/config"

if [ -f $wineconf ]; then
	sed -e 's/${HOME}/%HOME%/' <$wineconf >$wineconf.new
	mv $wineconf.new $wineconf
fi

if [ -d "$fakewindir" ]; then
	exit 0
fi

mkdir -p "$fakewindir"
cd "$fakewindir" || exit 1

#
# List of directories we need. Synced against winedefault.reg and wineinstall.
#
while read dir; do
	mkdir -p "$fakewindir/$dir"
done <<EOF
Windows
Windows/System
Windows/System32
Windows/Favorites
Windows/Fonts
Windows/Inf
Windows/Desktop
Windows/Application Data
Windows/Start Menu
Windows/Start Menu/Programs
Windows/Start Menu/Programs/Startup
Windows/ShellNew
Windows/Recent
Windows/SendTo
Windows/NetHood
Windows/Profiles
Windows/Profiles/Administrator
Windows/Command
Windows/Temp
Program Files
Program Files/Common Files
Program Files/Accessories
My Documents
EOF

while read winfn unixfn; do
	ln -s "/usr/lib/wine/$unixfn.so" "$fakewindir/$winfn"
done <<EOF
Windows/regedit.exe regedit.exe
Windows/System/regsvr32.exe regsvr32.exe
Windows/System/rundll32.exe rundll32.exe
Windows/notepad.exe notepad.exe
Windows/System/wcmd.exe wcmd.exe
Windows/Command/start.exe start.exe
Windows/System/winhelp.exe winhelp.exe
Windows/winhelp.exe winhelp.exe
Windows/System/winhelp32.exe winhelp.exe
Windows/winhelp32.exe winhelp.exe
Windows/System/help.exe winhelp.exe
Windows/System/uninstall.exe uninstaller.exe
Windows/winmine.exe winemine.exe
Windows/progman.exe progman.exe
EOF

# Copy stdole32.tlb (for InstallShield v6)
cp /usr/lib/wine/stdole32.tlb $fakewindir/Windows/System

# Copy default config.
cat /usr/lib/wine/config.suse.head 	> $winedir/config

drive=D
for i in /media/* ; do
	bn=`basename $i`
	if echo $bn| grep ^sd > /dev/null ; then
		if [ "$bn" != "$floppy" ]; then
			echo "[Drive $drive]"		>> $winedir/config
			echo "\"Path\"=\"$i\""		>> $winedir/config
			echo "\"Label\"=\"$bn\""	>> $winedir/config
			echo "\"Type\"=\"cdrom\""	>> $winedir/config
			echo "\"FS\"=\"win95\""		>> $winedir/config
			echo ";\"Device\"=\"/dev/$bn\""	>> $winedir/config
			echo 				>> $winedir/config
			drive=`echo $drive|tr "D-L" "E-M"`
		fi
	fi	
done

cat /usr/lib/wine/config.suse.tail 	>> $winedir/config

# Loading default registry.
/usr/bin/regedit /usr/lib/wine/reg/winedefault.reg

# register all self registering dlls.
/usr/bin/regsvr32 \
	avifil32.dll \
	comcat.dll \
	ddraw.dll \
	devenum.dll \
	dmband.dll \
	dmcompos.dll \
	dmime.dll \
	dmloader.dll \
	dmscript.dll \
	dmstyle.dll \
	dmsynth.dll \
	dmusic.dll \
	dplayx.dll \
	dsound.dll \
	dswave.dll \
	ole32.dll \
	oleaut32.dll \
	quartz.dll \
	shdocvw.dll \
	shell32.dll


#for i in /usr/lib/wine/*.dll.so ; do
#	regsvr32 `basename $i|sed -e 's/.so//'`
#done
