commit:     3bdcae62e9f5c435e8f566c333f6ca01a7cdb21e
Author:     Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 21 10:31:29 2015 +0000
Commit:     Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Tue Nov 24 21:56:16 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3bdcae62

xdg.eclass: initial commit

Goal of this eclass is to end the inconsistent and often forgotten use
of fdo-mime.eclass. Provides all needed phases for proper behavior.

https://bugs.gentoo.org/show_bug.cgi?id=208047

 eclass/xdg.eclass | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/eclass/xdg.eclass b/eclass/xdg.eclass
new file mode 100644
index 0000000..799d6a2
--- /dev/null
+++ b/eclass/xdg.eclass
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# @ECLASS: xdg.eclass
+# @MAINTAINER:
+# freedesktop-b...@gentoo.org
+# @AUTHOR:
+# Original author: Gilles Dartiguelongue <e...@gentoo.org>
+# @BLURB: Provides phases for XDG compliant packages.
+# @DESCRIPTION:
+# Utility eclass to update the desktop and shared mime info as laid
+# out in the freedesktop specs & implementations
+
+inherit xdg-utils
+
+case "${EAPI:-0}" in
+       4|5|6)
+               EXPORT_FUNCTIONS src_prepare pkg_preinst pkg_postinst pkg_postrm
+               ;;
+       *) die "EAPI=${EAPI} is not supported" ;;
+esac
+
+DEPEND="
+       dev-util/desktop-file-utils
+       x11-misc/shared-mime-info
+"
+
+# @FUNCTION: xdg_src_prepare
+# @DESCRIPTION:
+# Prepare sources to work with XDG standards.
+xdg_src_prepare() {
+       xdg_environment_reset
+
+       has ${EAPI:-0} 6 && eapply_user
+}
+
+# @FUNCTION: xdg_pkg_preinst
+# @DESCRIPTION:
+# Finds .desktop and mime info files for later handling in pkg_postinst
+xdg_pkg_preinst() {
+       xdg_desktopfiles_savelist
+       xdg_mimeinfo_savelist
+}
+
+# @FUNCTION: xdg_pkg_postinst
+# @DESCRIPTION:
+# Handle desktop and mime info database updates.
+xdg_pkg_postinst() {
+       xdg_desktop_database_update
+       xdg_mimeinfo_database_update
+}
+
+# @FUNCTION: xdg_pkg_postrm
+# @DESCRIPTION:
+# Handle desktop and mime info database updates.
+xdg_pkg_postrm() {
+       xdg_desktop_database_update
+       xdg_mimeinfo_database_update
+}
+

Reply via email to