summary refs log tree commit diff
path: root/gnu/packages/video.scm
diff options
context:
space:
mode:
authorjaeme <jaeme@runbox.com>2023-10-26 19:48:51 -0400
committerTobias Geerinckx-Rice <me@tobias.gr>2023-11-19 01:00:00 +0100
commitceb5b5a5f363dbf0a138753b2273ebcebf525213 (patch)
tree80b4dab426ac9af5175cefc408068bdc67a92af5 /gnu/packages/video.scm
parent1408e7a3046140a26c69603cf7e0507c110eea4a (diff)
downloadguix-ceb5b5a5f363dbf0a138753b2273ebcebf525213.tar.gz
gnu: Add ani-cli.
* gnu/packages/video.scm (ani-cli): New variable.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
Change-Id: I21ea258f164285dea0d46379dff120b105803dd0
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r--gnu/packages/video.scm74
1 files changed, 74 insertions, 0 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index e9b2a17851..2822cdf4bf 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -117,6 +117,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages bittorrent)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages check)
@@ -196,6 +197,7 @@
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages swig)
+  #:use-module (gnu packages terminals)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
@@ -211,6 +213,78 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public ani-cli
+  (package
+    (name "ani-cli")
+    (version "4.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pystardust/ani-cli")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ni9pzjb5qh87iz7c8252bx79qadr1qx6jnkqvvjcqrchh7q473a"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:tests? #f                       ;no test suite
+      #:phases
+      #~(modify-phases %standard-phases
+          (delete 'configure)           ;nothing to configure
+          (delete 'build)               ;nothing to build
+          (replace 'install
+            (lambda _
+              (install-file "ani-cli" (string-append #$output "/bin"))
+              (install-file "ani-cli.1"
+                            (string-append #$output "/share/man/man1"))))
+          (add-after 'install 'wrap
+            (lambda* (#:key inputs #:allow-other-keys)
+              (define (bin command)
+                (dirname (search-input-file
+                          inputs (string-append "bin/" command))))
+              (wrap-program (string-append #$output "/bin/ani-cli")
+                `("PATH" ":" prefix
+                  ,(map bin (list "aria2c"
+                                  "curl"
+                                  "ffmpeg"
+                                  "fzf"
+                                  "grep"
+                                  "mpv"
+                                  "sed"
+                                  "tput"
+                                  "uname"
+                                  "yt-dlp")))))))))
+    (inputs (list aria2
+                  bash-minimal
+                  coreutils
+                  curl
+                  ffmpeg
+                  fzf
+                  grep
+                  mpv
+                  ncurses
+                  sed
+                  yt-dlp))
+    (native-search-paths
+     ;; This was copied from the curl package.
+     (list (search-path-specification
+            (variable "CURL_CA_BUNDLE")
+            (file-type 'regular)
+            (separator #f)              ;single entry
+            (files '("etc/ssl/certs/ca-certificates.crt")))))
+    (home-page "https://github.com/pystardust/ani-cli")
+    (synopsis "Browse and watch anime from the command line")
+    (description
+     "ani-cli is a @acronym{CLI, command-line interface} to browse and watch
+anime by streaming videos from @uref{https://allanime.to,All Anime}.
+
+There are different features such as episode browsing, history tracking,
+streaming at multiple resolutions, and much more, depending on what programs the
+user has installed.")
+    (license license:gpl3+)))
+
 (define-public transcode
   (package
     (name "transcode")