distutils-r1.eclass: Ban EXAMPLES in EAPI 6
[gentoo.git] / eclass / vim-spell.eclass
1 # Copyright 1999-2011 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Id$
4
5 #
6 # Original Author: Ciaran McCreesh <ciaranm@gentoo.org>
7 # Maintainers:     Vim Herd <vim@gentoo.org>
8 # Purpose:         Simplify installing spell files for vim7
9 #
10
11 # How to make a vim spell file package using prebuilt spell lists
12 # from upstream (${CODE} is the language's two letter code):
13 #
14 # * Get the ${CODE}.*.spl, ${CODE}.*.sug (if your language has them) and
15 #   README_${CODE}.txt files. Currently they're at
16 #   ftp://ftp.vim.org/pub/vim/unstable/runtime/spell/ (except for English,
17 #   which should be taken from CVS instead).
18 #
19 # * Stick them in vim-spell-${CODE}-$(date --iso | tr -d - ).tar.bz2 . Make sure
20 #   that they're in the appropriately named subdirectory to avoid having to mess
21 #   with S=.
22 #
23 # * Upload the tarball to the Gentoo mirrors.
24 #
25 # * (for now) Add your spell file to package.mask next to the other vim7
26 #   things. The vim herd will handle unmasking your spell packages when vim7
27 #   comes out of package.mask.
28 #
29 # * Create the app-vim/vim-spell-${CODE} package. You should base your ebuild
30 #   upon app-vim/vim-spell-en. You will need to change VIM_SPELL_LANGUAGE,
31 #   KEYWORDS and LICENSE. Check the license carefully! The README will tell
32 #   you what it is.
33 #
34 # * Don't forget metadata.xml. You should list vim as the herd, and yourself
35 #   as the maintainer (there is no need to join the vim herd just for spell
36 #   files):
37 #
38 #     <?xml version="1.0" encoding="UTF-8"?>
39 #     <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
40 #     <pkgmetadata>
41 #       <herd>vim</herd>
42 #       <maintainer>
43 #               <email>your-name@gentoo.org</email>
44 #       </maintainer>
45 #       <longdescription lang="en">
46 #               Vim spell files for French (fr). Supported character sets are
47 #               UTF-8 and latin1.
48 #       </longdescription>
49 #     </pkgmetadata>
50 #
51 # * Send an email to vim@gentoo.org to let us know.
52 #
53 # Don't forget to update your package as necessary.
54 #
55 # If there isn't an upstream-provided pregenerated spell file for your language
56 # yet, read :help spell.txt from inside vim7 for instructions on how to create
57 # spell files. It's best to let upstream know if you've generated spell files
58 # for another language rather than keeping them Gentoo-specific.
59
60 inherit eutils
61
62 EXPORT_FUNCTIONS src_install pkg_postinst
63
64 IUSE=""
65 DEPEND="|| ( >=app-editors/vim-7_alpha
66         >=app-editors/gvim-7_alpha )"
67 RDEPEND="${DEPEND}"
68 SRC_URI="mirror://gentoo/${P}.tar.bz2"
69 SLOT="0"
70
71 if [[ -z "${VIM_SPELL_CODE}" ]] ; then
72         VIM_SPELL_CODE="${PN/vim-spell-/}"
73 fi
74
75 DESCRIPTION="vim spell files: ${VIM_SPELL_LANGUAGE} (${VIM_SPELL_CODE})"
76
77 if [[ -z "${HOMEPAGE}" ]] ; then
78         HOMEPAGE="http://www.vim.org/"
79 fi
80
81 vim-spell_src_install() {
82         target="/usr/share/vim/vimfiles/spell/"
83         dodir "${target}"
84         insinto "${target}"
85
86         had_spell_file=
87         for f in *.spl ; do
88                 if [[ -f "${f}" ]]; then
89                         doins "${f}"
90                         had_spell_file="yes"
91                 fi
92         done
93
94         for f in *.sug ; do
95                 if [[ -f "${f}" ]]; then
96                         doins "${f}"
97                 fi
98         done
99
100         for f in README* ; do
101                 dodoc "${f}"
102         done
103
104         [[ -z "${had_spell_file}" ]] && die "Didn't install any spell files?"
105 }
106
107 vim-spell_pkg_postinst() {
108         has "${EAPI:-0}" 0 1 2 && ! use prefix && EROOT="${ROOT}"
109         target="/usr/share/vim/vimfiles/spell/"
110         echo
111         elog "To enable ${VIM_SPELL_LANGUAGE} spell checking, use"
112         elog "    :setlocal spell spelllang=${VIM_SPELL_CODE}"
113         echo
114         elog "The following (Vim internal, not file) encodings are supported for"
115         elog "this language:"
116         for f in "${EROOT}/${target}/${VIM_SPELL_CODE}".*.spl ; do
117                 enc="${f##*/${VIM_SPELL_CODE}.}"
118                 enc="${enc%.spl}"
119                 [[ -z "${enc}" ]] && continue
120                 elog "    ${enc}"
121         done
122         echo
123         elog "For further documentation, use:"
124         elog "    :help spell"
125         echo
126         epause
127 }