From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id A5573158094 for ; Sun, 26 Jun 2022 02:36:41 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 89066E0893; Sun, 26 Jun 2022 02:36:39 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 41991E0893 for ; Sun, 26 Jun 2022 02:36:39 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 1AF37341576 for ; Sun, 26 Jun 2022 02:36:38 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 6F8F351B for ; Sun, 26 Jun 2022 02:36:36 +0000 (UTC) From: "Alessandro Barbieri" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Alessandro Barbieri" Message-ID: <1656210584.1a5c41863841d242001fd2d398f054fa6de807e0.Alessandro-Barbieri@gentoo> Subject: [gentoo-commits] repo/proj/guru:dev commit in: eclass/ X-VCS-Repository: repo/proj/guru X-VCS-Files: eclass/cannadic.eclass X-VCS-Directories: eclass/ X-VCS-Committer: Alessandro-Barbieri X-VCS-Committer-Name: Alessandro Barbieri X-VCS-Revision: 1a5c41863841d242001fd2d398f054fa6de807e0 X-VCS-Branch: dev Date: Sun, 26 Jun 2022 02:36:36 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 4fe555f7-379b-4ee6-8af4-f0e93c20b45a X-Archives-Hash: 02b48e697da00b55ba77308364ea1a3a commit: 1a5c41863841d242001fd2d398f054fa6de807e0 Author: Alessandro Barbieri gmail com> AuthorDate: Wed Jun 22 02:44:38 2022 +0000 Commit: Alessandro Barbieri gmail com> CommitDate: Sun Jun 26 02:29:44 2022 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=1a5c4186 cannadic.eclass: add cannadic eclass Signed-off-by: Alessandro Barbieri gmail.com> eclass/cannadic.eclass | 149 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) diff --git a/eclass/cannadic.eclass b/eclass/cannadic.eclass new file mode 100644 index 000000000..4e8914f39 --- /dev/null +++ b/eclass/cannadic.eclass @@ -0,0 +1,149 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# @ECLASS: cannadic.eclass +# @MAINTAINER: +# Alessandro Barbieri +# @AUTHOR: +# Mamoru KOMACHI +# @SUPPORTED_EAPIS: 8 +# @BLURB: Function for Canna compatible dictionaries +# @DESCRIPTION: +# The cannadic eclass is used for installation and setup of Canna +# compatible dictionaries. + +case ${EAPI} in + 8) ;; + *) die "EAPI=${EAPI:-0} is not supported" ;; +esac + +EXPORT_FUNCTIONS src_install pkg_postinst pkg_postrm + +if [[ -z ${_CANNADIC_ECLASS} ]]; then +_CANNADIC_ECLASS=1 + +SRC_URI="mirror://gentoo/${P}.tar.gz" + +# You don't need to modify these +readonly _CANNADIC_CANNA_DIR="/var/lib/canna/dic/canna" +readonly _CANNADIC_DICS_DIR="/etc/canna/dics.dir.d/" + +# @FUNCTION: cannadic-install +# @DESCRIPTION: +# Installs dictionaries to ${EPREFIX}/var/lib/canna/dic/canna +cannadic-install() { + insinto ${_CANNADIC_CANNA_DIR} + insopts -m 0664 -o canna -g canna + doins "${@}" +} + +# @FUNCTION: dicsdir-install +# @DESCRIPTION: +# Installs dics.dir from ${DICSDIRFILE} +dicsdir-install() { + insinto ${_CANNADIC_DICS_DIR} + doins ${DICSDIRFILE} +} + +# @FUNCTION: cannadic_src_install +# @DESCRIPTION: +# Installs all dictionaries under ${WORKDIR} +# plus dics.dir and docs +cannadic_src_install() { + keepdir ${_CANNADIC_CANNA_DIR} + fowners canna:canna ${_CANNADIC_CANNA_DIR} + fperms 0775 ${_CANNADIC_CANNA_DIR} + + local f + for f in *.c[btl]d *.t; do + if [[ -s ${f} ]]; then + cannadic-install "${f}" + fi + done 2> /dev/null + + dicsdir-install + + einstalldocs +} + +# @FUNCTION: update-cannadic-dir +# @DESCRIPTION: +# Updates dics.dir for Canna Server, script for this part taken from Debian GNU/Linux +# +# compiles dics.dir files for Canna Server +# Copyright 2001 ISHIKAWA Mutsumi +# Licensed under the GNU General Public License, version 2. See the file +# /usr/portage/license/GPL-2 or . +update-cannadic-dir() { + einfo + einfo "Updating dics.dir for Canna ..." + einfo + + # write new dics.dir file in case we are interrupted + cat <<-EOF > "${EROOT}${_CANNADIC_CANNA_DIR}/dics.dir.update-new" || die + # dics.dir -- automatically generated file by Portage. + # DO NOT EDIT BY HAND. + EOF + + local f + for f in "${EROOT}${_CANNADIC_DICS_DIR}"/*.dics.dir; do + echo "# ${f}" >> "${EROOT}${_CANNADIC_CANNA_DIR}/dics.dir.update-new" || die + cat "${f}" >> "${EROOT}${_CANNADIC_CANNA_DIR}/dics.dir.update-new" || die + einfo "Added ${f}." + done + + mv "${EROOT}${_CANNADIC_CANNA_DIR}/dics.dir.update-new" "${EROOT}${_CANNADIC_CANNA_DIR}/dics.dir" || die + + einfo + einfo "Done." + einfo +} + +# @FUNCTION: cannadic_pkg_postinst +# @DESCRIPTION: +# Updates dics.dir and print out notice after install +cannadic_pkg_postinst() { + debug-print-function ${FUNCNAME} "${@}" + + update-cannadic-dir + + einfo "Please restart cannaserver for changes to propagate." + einfo "You need to modify your config file (~/.canna) to enable dictionaries." + + if [[ -n ${CANNADICS} ]]; then + einfo "e.g) add" + einfo + einfo " $(IFS=' ' ; echo ${CANNADICS[*]})" + einfo + einfo "to section use-dictionary()." + einfo "For details, see documents under ${EROOT}/usr/share/doc/${PF}." + fi + + einfo "If you do not have ~/.canna, you can find sample files in ${EROOT}/usr/share/canna." + ewarn "If you are upgrading from existing dictionary, you may need to recreate" + ewarn "user dictionary if you have one." +} + +# @FUNCTION: cannadic_pkg_postrm +# @DESCRIPTION: +# Updates dics.dir and print out notice after uninstall +cannadic_pkg_postrm() { + debug-print-function ${FUNCNAME} "${@}" + + update-cannadic-dir + + einfo "Please restart cannaserver for changes to propagate." + einfo "and modify your config file (~/.canna) to disable dictionary." + + if [[ -n ${CANNADICS} ]]; then + einfo "e.g) delete" + einfo + einfo " $(IFS=' ' ; echo ${CANNADICS[*]})" + einfo + einfo "from section use-dictionary()." + fi + + einfo +} + +fi