9个版本
0.2.1 | 2024年1月14日 |
---|---|
0.2.0 | 2024年1月12日 |
0.1.7 | 2024年1月7日 |
0.1.4 | 2023年10月9日 |
0.1.3 | 2023年9月25日 |
#93 在 音频
每月 79 次下载
70KB
2K SLoC
mp-cli
使用Rust编写的音乐播放器守护进程(MPD)命令行客户端。
功能
我正在努力使它与mpc兼容。有关当前状态,请参阅此跟踪问题。
或者,请参阅帮助。
安装
目前需要本地编译和安装crate。最简单的方法是安装Rust工具链。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
然后使用cargo
从crates.io构建和安装。
cargo install mp-cli
为什么?
主要是因为我想练习写Rust。此外,为了与令人惊叹的macOS栏应用程序SketchyBar一起使用。我创建的一个插件可以显示MPD当前状态(播放/暂停)以及艺术家和标题。我过去曾使用mpc来达到这个目的,但状态输出不适合解析(更适合人类可读性)。
因此,我决定实现一个客户端,它将提供更一致和可解析的输出。
❯ mp-cli status
volume=100
state=play
artist=King Gizzard & The Lizard Wizard
title=Wah Wah
此格式易于在shell脚本中解析和高效
#! /usr/bin/env bash
status=$(mp-cli)
while IFS='=' read -r key value; do
case "$key" in
'artist') artist="$value" ;;
'state') state="$value" ;;
'title') title="$value" ;;
'volume') volume="$value" ;;
esac
done <<<"$status"
echo "${artist}"
echo "${state}"
echo "${title}"
echo "${volume}"
或者可以将状态呈现为JSON。
❯ mp-cli --format json status | jq
{
"volume": "100",
"state": "play",
"artist": "King Gizzard & The Lizard Wizard",
"title": "Road Train"
}
致谢
与守护进程通信的重任全部由rust-mpd处理。
显然mpc是用于与mpd
交互的实际CLI工具。对于我(目前)已实现的命令,我已经尽最大努力模仿mpc
的界面。理论上,这可以作为一个非常有限的用例的替换。
依赖项
~2.8–4MB
~74K SLoC