Subject: [bug#29099] [PATCH] gnu: Add kodi-cli.

From: Marius Bakke <[email-masked]>
Date: Wed, 01 Nov 2017 22:32:34 +0100

Hello Oleg!

Oleg Pykhalov <[email-masked]> writes:

> From 741284b1619490859910fb402802ab10b31f0fd2 Mon Sep 17 00:00:00 2001
> From: Oleg Pykhalov <[email-masked]>
> Date: Wed, 1 Nov 2017 09:39:05 +0300
> Subject: [PATCH] gnu: Add kodi-cli.
>
> * gnu/packages/kodi.scm (kodi-cli): New variable.

Cool!

[...]

> +(define-public kodi-cli
> +  (let ((commit "104dc23b2a993c8e6db8c46f4f8bec24b146549b") ; Add support for
> +        (revision "1"))                                     ; `$HOME/.kodirc'.
> +    (package
> +      (name "kodi-cli")
> +      (version (string-append "1.1-" revision "." (string-take commit 7)))
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference (url "https://github.com/nawar/kodi-cli")
> +                                    (commit commit)))
> +                (sha256
> +                 (base32
> +                  "1xjhasc5gngfxpr1dlzy6q24w0wpdfjx12p43fanjppxw4i49n5p"))
> +                (file-name (string-append name "-" version "-checkout"))))
> +      (build-system trivial-build-system)
> +      (inputs `(("bash" ,bash)))
> +      (propagated-inputs `(("curl" ,curl)))

There is only one reference to `curl` in the script, can you try to
substitute it with the absolute path and make it a regular input?  It's
good to avoid propagation when we can.

> +      (arguments
> +       `(#:modules ((guix build utils))
> +         #:builder
> +         (begin
> +           (use-modules (guix build utils))
> +           (copy-recursively (assoc-ref %build-inputs "source") ".")
> +           (substitute* "kodi-cli"
> +             (("/bin/bash") (string-append (assoc-ref %build-inputs "bash")
> +                                           "/bin/bash")))
> +           (install-file "kodi-cli" (string-append %output "/bin")))))

(install-file ...) has an unspecified return value, so please return #t here.

> +      (home-page "https://github.com/nawar/kodi-cli")
> +      (synopsis "Bash script to send commands to Kodi using JSON RPC")

Maybe just "Control Kodi from the command line".

> +      (description "@code{kodi-cli} provides the Bash script to send commands to
> +Kodi using JSON RPC.

Similarly, this sentence can be reduced to something like
"@code{kodi-cli} is a tool for sending commands to a Kodi server using
JSON-RPC.".  Bash is an boring implementation detail IMO. :-)

> +
> +Feautures:
      ^ Stray 'u' character.

> +
> +@itemize
> +@item Play, pause, stop the current played video.

"currently playing"

> +@item Skip forward or backward in the current played video.

Same here.  Maybe it should be "currently playing item", since I assume
this works for music as well.

> +@item Play or queue to the current list YouTube video.

"List of YouTube videos"?

> +@item Interactive and noninteractive volume control.
> +@item Interactive navigation.
> +@item Send text.

What does this mean?  Arbitrary commands, or text notifications?

> +@item Toggle fullscreen.
> +@item Update or clean Kodi libraries.
> +@end itemize\n")
> +      (license license:gpl2+))))

LGTM with some cosmetic improvements.  And welcome!

By the way, if you use Kodi from Guix, feel free to update the 18
snapshot if you can.  My media PC died a while back, and I didn't get a
replacement yet, so I have not been able to maintain the Kodi package.