You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/x11-misc/emacs-desktop-mail/emacs-desktop-mail-1.2.ebuild

62 lines
1.7 KiB

# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
NEED_EMACS=28
inherit elisp desktop xdg-utils
DESCRIPTION="Desktop entries for handling mailto URIs with GNU Emacs"
HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Emacs"
S="${WORKDIR}"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
src_compile() { :; }
src_install() {
newmenu - emacs-mail.desktop <<-EOF
[Desktop Entry]
Type=Application
Name=GNU Emacs (mail)
NoDisplay=true
Exec=${EPREXIX}/usr/bin/emacs -f message-mailto %u
Terminal=false
MimeType=x-scheme-handler/mailto;
EOF
# The Desktop Entry Specification does not allow field codes like %u
# inside a quoted argument, therefore we need a shell wrapper.
# We pass the following commands to it, in order to backslash-escape
# any special characters '\' and '"' that occur in %u:
# u=${1//\\/\\\\}
# u=${u//\"/\\\"}
# exec emacsclient --eval "(message-mailto \"$u\")"
# However, in the desktop entry '"', '\', and '$' must be escaped
# as '\\"', '\\\\', and '\\$', respectively. Yet another level of
# backslash escapes is needed for '\' and '$' in the here-document.
newmenu - emacsclient-mail.desktop <<-EOF
[Desktop Entry]
Type=Application
Name=Emacsclient (mail)
NoDisplay=true
Exec=${EPREFIX}/bin/bash -c \
"u=\\\\\${1//\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\}; \
u=\\\\\${u//\\\\\\\\\\\\"/\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}; \
exec ${EPREFIX}/usr/bin/emacsclient \
--eval \\\\"(message-mailto \\\\\\\\\\\\"\\\\\$u\\\\\\\\\\\\")\\\\"" bash %u
Terminal=false
MimeType=x-scheme-handler/mailto;
EOF
}
pkg_postinst() {
xdg_desktop_database_update
}
pkg_postrm() {
xdg_desktop_database_update
}