Subject: [bug#50833] [PATCH] gnu: Add bower.

From: jgart <[email-masked]>
Date: Thu, 30 Sep 2021 23:31:27 -0400

* gnu/packages/mail.scm (bower): New variable.
---
 gnu/packages/mail.scm | 66 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index e1e56c33d0..3bfb81085b 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -87,6 +87,7 @@
   #:use-module (gnu packages file)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gawk)
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
@@ -114,6 +115,7 @@
   #:use-module (gnu packages lua)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages mercury)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
@@ -1302,6 +1304,70 @@ agent (@dfn{MUA}) experience as an alternative to the Emacs mode shipped with
 Notmuch.")
     (license license:gpl3+)))
 
+(define-public bower
+  (package
+    (name "bower")
+    (version "0.13")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/wangp/bower")
+         (commit (string-append version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0r5s16pc3ym5nd33lv9ljv1p1gpb7yysrdni4g7w7yvjrnwk35l6"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list
+        "bower" "man"
+        (string-append "CC=" ,(cc-for-target))
+        (string-append "prefix=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (invoke "make" "-C" "tests"))))
+         (replace 'install
+           (lambda* (#:key outpus #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref %outputs "out") "/bin"))
+                   (man (string-append (assoc-ref %outputs "out") "/share/man/man1"))
+                   (conf (string-append (assoc-ref %outputs "out") "/share/bower")))
+               (install-file "bower" bin)
+               (install-file "bower.conf.sample" (string-append conf "/bower.conf"))
+               (install-file "bower.1" man)))))))
+    (native-inputs
+     `(("diffutils" ,diffutils) ; needed for diff command
+       ("gawk" ,gawk)
+       ("mercury" ,mercury)
+       ("pandoc" ,pandoc)
+       ("util-linux" ,util-linux))) ; needed by rev command for test_process.m
+    (inputs
+     `(("coreutils" ,coreutils) ; needed for base64
+       ("file" ,file)
+       ("gpgme" ,gpgme)
+       ("ncurses" ,ncurses)
+       ("xclip" ,xclip)
+       ("xdg-utils" ,xdg-utils))) ; needed for xdg-open
+    (home-page "https://github.com/wangp/bower")
+    (synopsis "Terminal client for the notmuch email system")
+    (description
+"@command{bower} is a curses frontend for the notmuch email system.
+Bower has two main views: an index, and a combined message thread and pager.
+Bower can use the @command{notmuch address} command to look up email addresses
+where required, for example, when composing a new message.
+Bower is designed such that it can be run on the local machine but call
+out to @command{notmuch} via ssh on a remote machine storing your mail.
+  The advantage is that you can start helper programs on the local machine,
+for example, a web browser or image viewer, and add or save attachments on
+the local filesystem, even if your mail archive is stored on a different
+machine.")
+    (license license:gpl3+)))
+
 (define-public notifymuch
   (let
       ((commit "9d4aaf54599282ce80643b38195ff501120807f0")
-- 
2.33.0