summaryrefslogtreecommitdiff
blob: 09dde882858dc05b5efa06d5e18d1bca3c5e6c59 (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=4

inherit vim-plugin eutils fdo-mime

DESCRIPTION="An easy-to-use configuration of the GVim text editor"
HOMEPAGE="http://cream.sourceforge.net"

DICT_EN="eng_2.0.2"
DICT_FR="fre_2.1"
DICT_ES="spa_3.0"
DICT_DE="ger_2.0.1"

SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz
	l10n_de? ( http://cream.sourceforge.net/cream-spell-dict-${DICT_DE}.zip )
	l10n_en? ( http://cream.sourceforge.net/cream-spell-dict-${DICT_EN}.zip )
	l10n_es? ( http://cream.sourceforge.net/cream-spell-dict-${DICT_ES}.zip )
	l10n_fr? ( http://cream.sourceforge.net/cream-spell-dict-${DICT_FR}.zip )"

IUSE="l10n_de l10n_en l10n_fr l10n_es"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 ia64 ~mips ppc sparc x86"

DEPEND="
	>=app-editors/gvim-7.0
	app-arch/unzip"
RDEPEND="
	>=app-editors/gvim-7.0
	dev-util/ctags"

VIM_PLUGIN_HELPTEXT=\
"Cream is completely independent from the rest of your Vim/GVim setup.
To launch GVim in Cream mode, use this wrapper script:
\    % cream [filename...]

Cream's documentation has been installed in ${ROOT}usr/share/doc/${PF}
In particular, you may want to read:

\ - the Cream features list:
file://${ROOT}usr/share/doc/${PF}/html/features.html

\ - the Cream shortcuts list:
file://${ROOT}usr/share/doc/${PF}/html/keyboardshortcuts.html

\ - the Cream FAQ:
file://${ROOT}usr/share/doc/${PF}/html/faq.html"

# Utility function to rename a Vim help file and its links/anchors:
#   prefix_help_file prefix file [pattern ...]
prefix_help_file() {
	local prefix="${1}" ; shift
	local helpfile="${1}" ; shift
	while [[ -n "${1}" ]] ; do
		sed -i "s:\([*|]\)\(${1}[*|]\):\1${prefix}-\2:g" "${helpfile}" \
			|| die "Failed to sed \"${1}\" on \"${helpfile}\""
		shift
	done
	mv "${helpfile}" "${helpfile%/*}/${prefix}-${helpfile##*/}" \
		|| die "Failed to rename \"${helpfile}\""
}

pkg_setup() {
	elog "Cream comes with several dictionaries for spell checking. In"
	elog "all cases, at least a small English dictionary will be installed."
	elog
	elog "To specify which optional dictionaries are installed, set the"
	elog "L10N variable in /etc/portage/make.conf. For example, to install full"
	elog "English and French dictionaries, use:"
	elog "    L10N=\"en fr\""
	elog
	elog "Available dictionaries are:"
	for dict in "English en" "French fr" "German de" "Spanish es" ; do
		elog "    ${dict% *} \t(${dict#* }) $(usex l10n_${dict#* } \
			"(Will be installed)" "(Will not be installed)")"
	done
	elog
}

src_unpack() {
	mkdir -p "${S}"/spelldicts

	# install spell dictionaries into ${S}/spelldicts
	local my_a
	for my_a in ${A} ; do
		if [ -z ${my_a/*spell-dict*/} ] ; then
			cd "${S}"/spelldicts
			unpack ${my_a}
		else
			cd "${WORKDIR}"
			unpack ${my_a}
		fi
	done
}

src_prepare() {
	# change installation path + fix the wrapper command (disable plugins)
	cat > cream <<-EOF
	#!/bin/sh
	gvim --servername CREAM --noplugin -U NONE -u "\\\$VIM/cream/creamrc" "\$@"
	EOF

	sed -i "/let \$CREAM/s:VIMRUNTIME:VIM:" creamrc || die

	# make taglist ebuild aware, bug #66052
	epatch "${FILESDIR}"/${PN}-0.30-ebuilds.patch

	# more filetypes for EnhancedCommentify, including the Gentoo ones
	epatch "${FILESDIR}"/enhancedcommentify-2.1-gentooisms.patch
	epatch "${FILESDIR}"/enhancedcommentify-2.1-extra-ft-support.patch

	# rename vim help files to avoid conflicts with other vim packages
	prefix_help_file cream help/EnhancedCommentify.txt \
		'EnhancedCommentify' 'EnhComm-[a-zA-Z]\+'

}

src_install() {
	# install launcher and menu entry
	dobin cream
	domenu cream.desktop
	doicon cream.svg cream.png

	# install shared vim files
	insinto /usr/share/vim/cream
	doins *.vim creamrc
	local dir
	for dir in addons bitmaps filetypes lang ; do
		insinto /usr/share/vim/cream/${dir}
		doins ${dir}/*
	done

	if [[ -n ${L10N} ]] ; then
		insinto /usr/share/vim/cream/spelldicts
		doins spelldicts/*
	fi

	insinto /usr/share/vim/vimfiles/doc
	doins help/*.txt

	# install docs
	dodoc docs/{CHANGELOG,DEVELOPER,KEYBOARD,PressRelease,README,RELEASE}.txt
	dohtml docs-html/*
	# html doc may be opened from Cream GUI
	dosym ../../doc/${PF}/html /usr/share/vim/cream/docs-html
}

pkg_postinst() {
	fdo-mime_desktop_database_update
	vim-plugin_pkg_postinst
}

pkg_postrm() {
	fdo-mime_desktop_database_update
	vim-plugin_pkg_postrm
}