Files
ncspot/Cargo.toml
Thomas Frans b27e84a386 Add manpage generation using xtask
* Add manpage generation.

* Hide xtask compilation info.
This changes the default behavior of the `cargo run` command for xtasks
to hide the compilation info. This makes sense as xtask's are run as a
program, and showing the compilation info every time clutters stdout
with unrelated info.

* Move ncspot's `clap::Command` to `lib.rs`.
Moving the `clap::Command` used internally by ncspot to a library allows
it to be easily shared between different packages (xtask and ncspot
itself).

This commit also reworks the xtasks to use clap for parsing the xtask
arguments, which simplifies writing new xtasks.

* Make `generate-manpage` `--output` optional.
When more xtasks get added, it would make sense to have a `generate-all`
subcommand that executes all xtasks, which wouldn't be able to have
options for every separate subcommand. Therefore the `output` argument
should be optional, and by default output to the `misc` directory which
contains extra metadata files already.

* Add packaging info to `README.md`.
Update the README to include information for packagers. The information
includes provided files as well as info on how to generate some of them.
2023-03-06 21:55:19 +01:00

107 lines
3.3 KiB
TOML

[package]
authors = ["Henrik Friedrichsen <henrik@affekt.org>"]
description = "ncurses Spotify client written in Rust using librespot, inspired by ncmpc and the likes."
edition = "2021"
exclude = ["images/**"]
keywords = ["spotify", "ncurses", "librespot", "terminal"]
license = "BSD-2-Clause"
name = "ncspot"
readme = "README.md"
repository = "https://github.com/hrkfdn/ncspot"
version = "0.12.0"
[badges]
maintenance = {status = "actively-developed"}
[workspace]
members = [
".",
"xtask"
]
[dependencies]
chrono = "0.4"
clap = "4.1.7"
clipboard = {version = "0.5", optional = true}
crossbeam-channel = "0.5"
dbus = {version = "0.9.6", optional = true}
dbus-tree = {version = "0.9.2", optional = true}
fern = "0.6"
futures = "0.3"
ioctl-rs = {version = "0.2", optional = true}
lazy_static = "1.3.0"
libc = "0.2.131"
librespot-core = "0.4.2"
librespot-playback = "0.4.2"
librespot-protocol = "0.4.2"
log = "0.4.16"
pancurses = {version = "0.17.0", optional = true}
parse_duration = "2.1.1"
platform-dirs = "0.3.0"
rand = "0.8"
regex = "1"
reqwest = {version = "0.11", features = ["blocking", "json"]}
serde = "1.0"
serde_cbor = "0.11.2"
serde_json = "1.0"
strum = "0.24.1"
strum_macros = "0.24.3"
tokio = {version = "1", features = ["rt-multi-thread", "sync", "time", "net"]}
tokio-util = {version = "0.7.4", features = ["codec"]}
tokio-stream = {version = "0.1.11", features = ["sync"]}
toml = "0.7"
unicode-width = "0.1.9"
url = "2.2"
cursive_buffered_backend = "0.6.1"
[target.'cfg(target_os = "linux")'.dependencies]
wl-clipboard-rs = {version = "0.7", optional = true}
[target.'cfg(unix)'.dependencies]
signal-hook = "0.3.0"
[dependencies.rspotify]
default-features = false
features = ["client-ureq", "ureq-rustls-tls"]
version = "0.11.5"
[dependencies.cursive]
default-features = false
version = "0.20.0"
[dependencies.notify-rust]
default-features = false
version = "4"
# Use dbus, which we already depend on, instead of zbus.
features = ["d"]
optional = true
[features]
alsa_backend = ["librespot-playback/alsa-backend"]
cover = ["ioctl-rs"] # Support displaying the album cover
default = ["share_clipboard", "pulseaudio_backend", "mpris", "notify", "termion_backend"]
mpris = ["dbus", "dbus-tree"] # Allow ncspot to be controlled via MPRIS API
notify = ["notify-rust"] # Show what's playing via a notification
pancurses_backend = ["cursive/pancurses-backend", "pancurses/win32"]
portaudio_backend = ["librespot-playback/portaudio-backend"]
pulseaudio_backend = ["librespot-playback/pulseaudio-backend"]
rodio_backend = ["librespot-playback/rodio-backend"]
share_clipboard = ["clipboard", "wl-clipboard-rs"] # Share a link to the system clipboard
share_selection = ["clipboard", "wl-clipboard-rs"] # Use the primary selection for sharing - linux and bsd only
termion_backend = ["cursive/termion-backend"]
[package.metadata.deb]
assets = [
["target/release/ncspot", "usr/bin/", "755"],
["misc/ncspot.desktop", "usr/share/applications/", "644"],
["images/logo.svg", "usr/share/icons/hicolor/scalable/apps/ncspot.svg", "644"],
["README.md", "usr/share/doc/ncspot/README.md", "644"],
]
depends = "$auto"
extended-description = """\
ncurses Spotify client written in Rust using librespot. \
It is heavily inspired by ncurses MPD clients, such as ncmpc."""
license-file = ["LICENSE"]
priority = "optional"
section = "sound"