@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
@@ -22,12 +22,16 @@
#:use-module (guix download)
#:use-module (guix packages)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system python)
#:use-module (gnu packages)
+ #:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages documentation)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages python-web)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages web)
#:use-module (gnu packages xml))
@@ -88,3 +92,42 @@ It started life as a fork of the currently unmaintained Newsbeuter.")
(define-public newsbeuter
;; Newsbeuter is unmaintained with multiple CVEs, and was forked as Newsboat.
(deprecated-package "newsbeuter" newsboat))
+
+(define-public toot
+ (package
+ (name "toot")
+ (version "0.21.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "toot" version))
+ (sha256
+ (base32
+ "1dqv5jckaw3r7dnfns3iygwbfnf27x513qrw2rryzl5y79xrzs1x"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (invoke "py.test"))))))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (propagated-inputs
+ `(("python-beautifulsoup4" ,python-beautifulsoup4)
+ ("python-requests" ,python-requests)
+ ("python-wcwidth" ,python-wcwidth)))
+ (home-page "https://github.com/ihabunek/toot/")
+ (synopsis "Mastodon CLI client")
+ (description "Interact with Mastodon social network from the command line.
+Features include:
+@itemize
+@item Posting, replying, deleting statuses
+@item Support for media uploads, spoiler text, sensitive content
+@item Search by account or hash tag
+@item Following, muting and blocking accounts
+@item Simple switching between authenticated in Mastodon accounts
+@end itemize")
+ (license license:gpl3)))