Subject: Calibre: Add icon and desktop file to Calibre

From: <[email-masked]>
Date: Tue, 19 Feb 2019 18:26:27 +0000 (GMT)

This patch adds two phases to the package definition for Calibre that install an icon and install a desktop file.

From 894a471083105a182d548c2b80effb0eb70c8fa6 Mon Sep 17 00:00:00 2001
From: Pkill -9 <[email-masked]>
Date: Tue, 19 Feb 2019 18:23:37 +0000
Subject: [PATCH] gnu: calibre: Add icon and desktop file.

* gnu/packages/ebook.scm (calibre): Add icon and desktop file.
---
 gnu/packages/ebook.scm | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 99e49bc17..ae899e04b 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -185,7 +185,32 @@
               (setenv "PODOFO_INC_DIR" (string-append podofo "/include/podofo"))
               (setenv "PODOFO_LIB_DIR" (string-append podofo "/lib"))
               #t)))
-         (add-after 'install 'install-font-liberation
+         (add-after 'install 'install-icon
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (install-file "imgsrc/calibre.svg"
+                             (string-append out
+                                            "/share/icons/hicolor/scalable/apps")))
+             #t))
+         (add-after 'install-icon 'install-desktop-file
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (mkdir-p (string-append out "/share/applications"))
+               (with-output-to-file
+                   (string-append out "/share/applications/calibre.desktop")
+                 (lambda _
+                   (format #t
+                           "[Desktop Entry]~@
+                Name=Calibre~@
+                Comment=E-book organiser and reader~@
+                Exec=~a/bin/calibre~@
+                TryExec=~@*~a/bin/calibre~@
+                Icon=calibre~@
+                Categories=Office~@
+                Type=Application~%"
+                           out)))
+               #t)))
+         (add-after 'install-desktop-file 'install-font-liberation
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (for-each (lambda (file)
                          (install-file file (string-append
-- 
2.20.1