summarylogtreecommitdiffstats
path: root/microsip
blob: 500c5bf7e63d293685092f4dddc8c91946df1045 (plain)
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
#!/usr/bin/env bash

__REV=3
__APPNAME=$(basename $0)
__WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local}/wine/${__APPNAME}"
__WINEARCH="win32"
__APPDIR="${__WINEPREFIX}/dosdevices/c:/${__APPNAME}"
__INSTALLED="${__APPDIR}/.installed.${__REV}"
__APPCFG="${XDG_CONFIG_HOME:-$HOME/.config}/${__APPNAME}"
__APPLOG="${XDG_CACHE_HOME:-$HOME/.cache}/${__APPNAME}"
__REGFILE="${__APPDIR}/${__APPNAME}.reg"
__TMPREGFILE=$(mktemp)
__DPI=$(xdpyinfo -display $DISPLAY | grep -A 2 "screen #0:" | grep "resolution:" | grep -oE '[0-9]+x[0-9]+' | cut -d 'x' -f 1)
__DPIX=$(printf %08x ${__DPI})

# force 32-bit prefix
__QUIRK1="${__APPDIR}/.quirk.1"

__symlink() {
	ln -sf "$1" "${__APPDIR}/${1##*/}"
}

if [[ -d "${__WINEPREFIX}" ]] && [[ ! -f "${__QUIRK1}" ]]; then
	rm -rf "${__WINEPREFIX}"
fi

if [[ ! -f "${__INSTALLED}" ]]; then
	mkdir -p "${__WINEPREFIX}"
	WINEPREFIX="${__WINEPREFIX}" WINEARCH="${__WINEARCH}" wineboot -u

	mkdir -p "${__APPDIR}"

	cp "/usr/share/${__APPNAME}/${__APPNAME}.reg" "${__TMPREGFILE}"
	sed -i "s/{DPI}/${__DPIX}/g" "${__TMPREGFILE}"
	iconv -f utf-8 -t utf-16le "${__TMPREGFILE}" >"${__REGFILE}"
	rm -f "${__TMPREGFILE}"
	WINEPREFIX="${__WINEPREFIX}" WINEARCH="${__WINEARCH}" regedit "${__REGFILE}"
	rm -f "${__REGFILE}"

	__symlink "/usr/share/licenses/${__APPNAME}/License.txt"
	__symlink "/usr/share/doc/${__APPNAME}/MicroSIP Website.url"
	__symlink "/usr/share/${__APPNAME}/hangup.wav"
	__symlink "/usr/share/${__APPNAME}/msgin.wav"
	__symlink "/usr/share/${__APPNAME}/msgout.wav"
	__symlink "/usr/share/${__APPNAME}/ringing.wav"
	__symlink "/usr/share/${__APPNAME}/ringing2.wav"
	__symlink "/usr/share/${__APPNAME}/ringtone.wav"
	__symlink "/usr/lib/${__APPNAME}/microsip.exe"
	__symlink "/usr/lib/${__APPNAME}/lame_enc.dll"

	mkdir -p "${__APPCFG}"
	touch "${__APPCFG}/Contacts.xml"
	touch "${__APPCFG}/microsip.ini"
	__symlink "${__APPCFG}/Contacts.xml"
	__symlink "${__APPCFG}/microsip.ini"

	mkdir -p "${__APPLOG}"
	touch "${__APPLOG}/microsip_log.txt"
	__symlink "${__APPLOG}/microsip_log.txt"

	touch "${__INSTALLED}"
fi

if [[ ! -f "${__QUIRK1}" ]]; then
	touch "${__QUIRK1}"
fi


WINEPREFIX="${__WINEPREFIX}" WINEARCH="${__WINEARCH}" wine "${__APPDIR}/microsip.exe"