123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- # Copyright 1999-2016 Gentoo Foundation
- # Distributed under the terms of the GNU General Public License v2
- EAPI=5
- USE_RUBY="ruby20 ruby21 ruby22"
- GITHUB_COMMIT="e358601cc521d8aced941eb928fae2d8c53cf0c2"
- inherit ruby-ng eutils user
- DESCRIPTION="A ruby IRC bot"
- HOMEPAGE="http://ruby-rbot.org/"
- SRC_URI="https://github.com/ruby-rbot/rbot/archive/${GITHUB_COMMIT}.tar.gz -> ${P}.tar.gz"
- LICENSE="|| ( feh GPL-2 )"
- SLOT="0"
- KEYWORDS="~amd64 ~ppc ~x86"
- IUSE="spell aspell timezone translator shorturl nls figlet
- fortune cal host toilet"
- ILINGUAS="zh_CN zh_TW ru nl de fi fr it ja"
- RUBY_S="${PN}-${GITHUB_COMMIT}"
- for lang in $ILINGUAS; do
- IUSE="${IUSE} linguas_${lang}"
- done
- RUBY_PATCHES=( rbot-rakefile-gettext.patch )
- RDEPEND+="
- spell? (
- aspell? ( app-text/aspell )
- !aspell? ( app-text/hunspell )
- )
- figlet? ( app-misc/figlet )
- toilet? ( app-misc/toilet )
- fortune? ( games-misc/fortune-mod )
- cal? ( || ( sys-apps/util-linux sys-freebsd/freebsd-ubin ) )
- host? ( net-dns/bind-tools )"
- ruby_add_bdepend "
- nls? (
- >=dev-ruby/ruby-gettext-2
- dev-ruby/rake
- )"
- ruby_add_rdepend "
- dev-ruby/tokyocabinet
- timezone? ( dev-ruby/tzinfo:* )
- translator? ( dev-ruby/mechanize )
- shorturl? ( dev-ruby/shorturl )
- nls? ( dev-ruby/ruby-gettext >=dev-ruby/locale-2.0.5-r2 )
- "
- pkg_setup() {
- enewuser rbot -1 -1 /var/lib/rbot nobody
- }
- all_ruby_prepare() {
- # Avoid tests that are only compatible with ruby22
- rm -f test/test_journal.rb || die
- # Fix deprecated code that was removed with ruby22
- sed -i -e 's/::Config/::RbConfig/' setup.rb || die
- }
- all_ruby_compile() {
- disable_rbot_plugin() {
- mv "${S}"/data/rbot/plugins/$1.rb{,.disabled}
- }
- use_rbot_plugin() {
- use $1 && return
- disable_rbot_plugin "$2"
- }
- rbot_conf() {
- echo "$1: $2" >> "${T}"/rbot.conf
- }
- use_rbot_conf_path() {
- use "$1" \
- && rbot_conf "$2" "$3" \
- || rbot_conf "$2" /bin/false
- }
- local spell_program="/usr/bin/hunspell -i"
- if use !spell; then
- disable_rbot_plugin spell
- spell_program="/bin/false"
- elif use aspell; then
- spell_program="/usr/bin/ispell-aspell"
- fi
- rbot_conf spell.program "${spell_program}"
- if use !figlet && use !toilet; then
- disable_rbot_plugin figlet
- fi
- use_rbot_conf_path figlet figlet.path /usr/bin/figlet
- use_rbot_conf_path toilet toilet.path /usr/bin/toilet
- use_rbot_plugin timezone time
- use_rbot_plugin translator translator
- use_rbot_plugin shorturl shortenurls
- use_rbot_plugin fortune fortune
- use_rbot_conf_path fortune fortune.path /usr/bin/fortune
- use_rbot_plugin cal cal
- use_rbot_conf_path cal cal.path /usr/bin/cal
- use_rbot_plugin host host
- use_rbot_conf_path host host.path /usr/bin/host
- local rbot_datadir="${D}"/usr/share/rbot
- # This is unfortunately pretty manual at the moment, but it's just
- # to avoid having to run special scripts to package new versions
- # of rbot. The default if new languages are added that are not
- # considered for an opt-out here is to install them, so you just
- # need to add them later.
- if use nls; then
- strip-linguas ${ILINGUAS}
- if [[ -n ${LINGUAS} ]]; then
- # As the the language name used by the rbot data files does
- # not correspond to the ISO codes we usually use for LINGUAS,
- # the following list of local varables will work as a
- # dictionary to get the name used by rbot from the ISO code.
- local lang_rbot_zh_CN="traditional_chinese"
- local lang_rbot_ru="russian"
- local lang_rbot_nl="dutch"
- local lang_rbot_de="german"
- local lang_rbot_fi="finnish"
- local lang_rbot_fr="french"
- local lang_rbot_it="italian"
- local lang_rbot_ja="japanese"
- for lang in ${ILINGUAS}; do
- use linguas_${lang} && continue
- lang_varname="lang_rbot_${lang}"
- lang_rbot=${!lang_varname}
- rm -r \
- "${S}"/data/rbot/languages/${lang_rbot}.lang \
- "${S}"/data/rbot/templates/lart/larts-${lang_rbot} \
- "${S}"/data/rbot/templates/lart/praises-${lang_rbot} \
- "${S}"/data/rbot/templates/salut/salut-${lang_rbot} \
- "${S}"/po/${lang} &>/dev/null
- done
- fi
- ${RUBY} /usr/bin/rake makemo || die "locale generation failed"
- fi
- }
- each_ruby_compile() {
- ${RUBY} setup.rb config --prefix="/usr" \
- || die "setup.rb install failed"
- }
- each_ruby_test() {
- pushd test || die
- ${RUBY} -Ilib:. -e "Dir['test_*'].each{|f| require f}" || die
- popd || die
- }
- each_ruby_install() {
- ${RUBY} setup.rb install --prefix="${D}" \
- || die "setup.rb install failed"
- }
- all_ruby_install() {
- diropts -o rbot -g nobody -m 0700
- keepdir /var/lib/rbot
- insinto /etc
- doins "${T}"/rbot.conf
- newinitd "${FILESDIR}/rbot.init2" rbot
- newconfd "${FILESDIR}/rbot.conf2" rbot
- }
- pkg_postinst() {
- elog "rbot can be started as a normal service."
- elog "Check /etc/conf.d/rbot file for more information about this feature."
- ewarn "DEPRECATION NOTICE:"
- ewarn "The bdb database backend is deprecated and only available on Ruby 1.8."
- ewarn "To migrate to the new tokyocabinet-based backend, change the core.db"
- ewarn "parameter in your bot's conf.yaml to 'tc' and restart rbot."
- ewarn "This procedure requires a Ruby version supporting both BDB and TC."
- }
|