diff options
| author | Michael Palimaka <kensington@gentoo.org> | 2014-03-20 02:39:20 +1100 |
|---|---|---|
| committer | Michael Palimaka <kensington@gentoo.org> | 2014-03-20 02:39:20 +1100 |
| commit | 3fd58117440da636c6db858217af2b2652da9d1e (patch) | |
| tree | 6b900a947070dfa9d23a9531aa685afff91d6163 /eclass/freedesktop.eclass | |
| parent | d7e7b009d64dff0dee98e622883b6706a67ab6d6 (diff) | |
| download | kde-3fd58117440da636c6db858217af2b2652da9d1e.tar.gz kde-3fd58117440da636c6db858217af2b2652da9d1e.tar.bz2 kde-3fd58117440da636c6db858217af2b2652da9d1e.zip | |
[eclass] Add initial draft of freedesktop eclass.
Diffstat (limited to 'eclass/freedesktop.eclass')
| -rw-r--r-- | eclass/freedesktop.eclass | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/eclass/freedesktop.eclass b/eclass/freedesktop.eclass new file mode 100644 index 00000000000..ed2250d6d9a --- /dev/null +++ b/eclass/freedesktop.eclass @@ -0,0 +1,70 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +# @ECLASS: freedesktop +# @MAINTAINER: +# freedesktop-bugs@gentoo.org +# @BLURB: Useful functions for working with freedesktop-compliant applications +# @DESCRIPTION: +# Set up directories according to the XDG Base Directory Specification. +# Also provides functions for updating desktop, mime, and icon caches. +# @EXAMPLE: +# @CODE +# inherit freedesktop +# +# pkg_setup() { +# freedesktop_setup +# } +# pkg_postinst() { +# freedesktop_desktop_database_update +# freedesktop_mime_database_update +# } +# @CODE + +# Unset these globally to avoid leaking values from the calling environment. +unset XDG_DATA_HOME XDG_CONFIG_HOME XDG_CACHE_HOME XDG_RUNTIME_DIR + +# @FUNCTION: freedesktop_setup +# @DESCRIPTION: +# Creates sensible locations for the following environment variables: +# XDG_DATA_HOME +# XDG_CONFIG_HOME +# XDG_CACHE_HOME +# XDG_RUNTIME_DIR +freedesktop_setup() { + export XDG_DATA_HOME="${HOME}/.local/share" + export XDG_CONFIG_HOME="${HOME}/.config" + export XDG_CACHE_HOME="${HOME}/.cache" + export XDG_RUNTIME_DIR="${T}/run" + mkdir -p "${XDG_DATA_HOME}" "${XDG_CONFIG_HOME}" "${XDG_CACHE_HOME}" || die + mkdir -p -m 0700 "${XDG_RUNTIME_DIR}" || die +} + +# @FUNCTION: freedesktop_desktop_database_update +# @DESCRIPTION: +# Updates the desktop database. +# Generates a list of mimetypes linked to applications that can handle them +fdo-mime_desktop_database_update() { + has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= + has "${EAPI:-0}" 0 1 2 && ! use prefix && EROOT="${ROOT}" + if [ -x "${EPREFIX}/usr/bin/update-desktop-database" ] + then + einfo "Updating desktop mime database ..." + "${EPREFIX}/usr/bin/update-desktop-database" -q "${EROOT}usr/share/applications" + fi +} + +# @FUNCTION: freedesktop_mime_database_update +# @DESCRIPTION: +# Update the mime database. +# Creates a general list of mime types from several sources +freedesktop_mime_database_update() { + has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= + has "${EAPI:-0}" 0 1 2 && ! use prefix && EROOT="${ROOT}" + if [ -x "${EPREFIX}/usr/bin/update-mime-database" ] + then + einfo "Updating shared mime info database ..." + "${EPREFIX}/usr/bin/update-mime-database" "${EROOT}usr/share/mime" + fi +} |
