Compare commits

...

39 Commits

Author SHA1 Message Date
mergify[bot] 90473fc967
Merge pull request #40 from anas-elgarhy/renovate/clap-4.x
fix(deps): update rust crate clap to 4.3.3
2023-06-14 08:52:47 +00:00
mergify[bot] cecb518d2d
Merge pull request #41 from anas-elgarhy/renovate/parse-display-0.x
fix(deps): update rust crate parse-display to 0.8.1
2023-06-14 08:52:09 +00:00
mergify[bot] c35aef7346
Merge pull request #42 from anas-elgarhy/renovate/log-0.x
fix(deps): update rust crate log to 0.4.19
2023-06-14 08:51:39 +00:00
renovate[bot] cf8476022c
fix(deps): update rust crate log to 0.4.19 2023-06-11 04:46:40 +00:00
renovate[bot] 8e5644c163
fix(deps): update rust crate parse-display to 0.8.1 2023-06-10 16:13:13 +00:00
renovate[bot] b4b6c6ad50
fix(deps): update rust crate clap to 4.3.3 2023-06-09 15:39:26 +00:00
mergify[bot] 81d34662bc
Merge pull request #37 from anas-elgarhy/renovate/clap-4.x
fix(deps): update rust crate clap to 4.3.2
2023-06-08 08:03:01 +00:00
mergify[bot] 9c69bc2292
Merge pull request #38 from anas-elgarhy/renovate/regex-1.x
fix(deps): update rust crate regex to 1.8.4
2023-06-08 08:02:30 +00:00
mergify[bot] 3b752d900a
Merge pull request #39 from anas-elgarhy/renovate/serde-1.x
fix(deps): update rust crate serde to 1.0.164
2023-06-08 08:02:02 +00:00
renovate[bot] 223ce4b1a1
fix(deps): update rust crate serde to 1.0.164 2023-06-08 06:44:35 +00:00
renovate[bot] 061c8dffc0
fix(deps): update rust crate clap to 4.3.2 2023-06-05 23:15:27 +00:00
renovate[bot] 2d2451df88
fix(deps): update rust crate regex to 1.8.4 2023-06-05 13:25:52 +00:00
mergify[bot] a55d87bc2c
Merge pull request #36 from anas-elgarhy/renovate/log-0.x
fix(deps): update rust crate log to 0.4.18
2023-05-30 20:17:36 +00:00
renovate[bot] 93385298d1
fix(deps): update rust crate log to 0.4.18 2023-05-28 11:39:09 +00:00
mergify[bot] 2df3015ac5
Merge pull request #34 from anas-elgarhy/renovate/clap-4.x
fix(deps): update rust crate clap to 4.3.0
2023-05-26 20:43:10 +00:00
mergify[bot] fa22e322da
Merge pull request #35 from anas-elgarhy/renovate/regex-1.x
fix(deps): update rust crate regex to 1.8.3
2023-05-26 20:40:36 +00:00
renovate[bot] 6aa6ec84b6
fix(deps): update rust crate regex to 1.8.3 2023-05-25 18:08:31 +00:00
renovate[bot] 7d0806cff8
fix(deps): update rust crate clap to 4.3.0 2023-05-19 17:21:06 +00:00
mergify[bot] ad83730074
Merge pull request #33 from anas-elgarhy/renovate/pretty_env_logger-0.x
fix(deps): update rust crate pretty_env_logger to 0.5.0
2023-05-19 01:43:46 +00:00
renovate[bot] bcbb0ba6d0
fix(deps): update rust crate pretty_env_logger to 0.5.0 2023-05-18 14:41:45 +00:00
mergify[bot] 4a39f3df0c
Merge pull request #32 from anas-elgarhy/renovate/serde-1.x
fix(deps): update rust crate serde to 1.0.163
2023-05-14 16:33:01 +00:00
renovate[bot] 11363d7bac
fix(deps): update rust crate serde to 1.0.163 2023-05-11 04:26:30 +00:00
Anas Elgarhy 6ad39b8edf
[doc/typo] Fix typo 2023-05-06 20:21:35 +03:00
mergify[bot] 50bf58bfc3
Merge pull request #29 from anas-elgarhy/renovate/clap-4.x
fix(deps): update rust crate clap to 4.2.7
2023-05-06 17:18:54 +00:00
mergify[bot] b7633a5260
Merge pull request #30 from anas-elgarhy/renovate/serde-1.x
fix(deps): update rust crate serde to 1.0.162
2023-05-06 17:18:20 +00:00
mergify[bot] 562a66a27d
Merge pull request #31 from ChaseCares/readme_fix
Readme fix
2023-05-06 17:13:52 +00:00
Chase C 7d23b65684
Revert "fix aur name"
This reverts commit 896c449606.
2023-05-06 12:11:09 -04:00
Chase C 7ec7b56a29
optional: remove unnecessary link 2023-05-06 08:12:12 -04:00
Chase C 7aa3f5cf18
optional: comply with md lint MD022 2023-05-06 08:11:43 -04:00
Chase C 77aa676d75
fix whitespace 2023-05-06 08:09:31 -04:00
Chase C 896c449606
fix aur name 2023-05-06 08:09:04 -04:00
renovate[bot] 297ace93fd
fix(deps): update rust crate serde to 1.0.162 2023-05-05 02:25:01 +00:00
renovate[bot] d015485b1b
fix(deps): update rust crate clap to 4.2.7 2023-05-02 20:20:58 +00:00
Anas Elgarhy 1459969efd
Merge branch 'master' of github.com:anas-elgarhy/cmus-notify 2023-05-01 14:39:42 +02:00
Anas Elgarhy 85d94fe9ab
[ci] Create the crates publish action 2023-05-01 14:34:40 +02:00
mergify[bot] eafd8d4370
Merge pull request #28 from anas-elgarhy/renovate/clap-4.x
fix(deps): update rust crate clap to 4.2.5
2023-04-28 05:08:59 +00:00
mergify[bot] f8da629f27
Merge pull request #27 from anas-elgarhy/dependabot/cargo/enumflags2-0.7.7
Bump enumflags2 from 0.7.5 to 0.7.7
2023-04-28 05:08:39 +00:00
renovate[bot] 260803e5f6
fix(deps): update rust crate clap to 4.2.5 2023-04-28 00:37:26 +00:00
dependabot[bot] 0b19ddd1f1
Bump enumflags2 from 0.7.5 to 0.7.7
Bumps [enumflags2](https://github.com/meithecatte/enumflags2) from 0.7.5 to 0.7.7.
- [Release notes](https://github.com/meithecatte/enumflags2/releases)
- [Commits](https://github.com/meithecatte/enumflags2/compare/v0.7.5...v0.7.7)

---
updated-dependencies:
- dependency-name: enumflags2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-24 16:49:59 +00:00
4 changed files with 81 additions and 93 deletions

18
.github/workflows/crates-releae.yml vendored Normal file
View File

@ -0,0 +1,18 @@
name: Publish to crates.io
on:
release:
types: [ created, published ]
jobs:
publish-crates:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- uses: katyo/publish-crates@v2
with:
registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }}

134
Cargo.lock generated
View File

@ -178,17 +178,6 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "debc29dde2e69f9e47506b525f639ed42300fc014a3e007832592448fa8e4599"
[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
"hermit-abi 0.1.19",
"libc",
"winapi",
]
[[package]]
name = "autocfg"
version = "1.1.0"
@ -274,9 +263,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clap"
version = "4.2.4"
version = "4.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "956ac1f6381d8d82ab4684768f89c0ea3afe66925ceadb4eeb3fc452ffc55d62"
checksum = "ca8f255e4b8027970e78db75e78831229c9815fdbfa67eb1a1b777a62e24b4a0"
dependencies = [
"clap_builder",
"clap_derive",
@ -294,9 +283,9 @@ dependencies = [
[[package]]
name = "clap_builder"
version = "4.2.4"
version = "4.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84080e799e54cff944f4b4a4b0e71630b0e0443b25b985175c7dddc1a859b749"
checksum = "acd4f3c17c83b0ba34ffbc4f8bbd74f079413f747f84a6f89292f138057e36ab"
dependencies = [
"anstream",
"anstyle",
@ -309,21 +298,21 @@ dependencies = [
[[package]]
name = "clap_derive"
version = "4.2.0"
version = "4.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4"
checksum = "b8cd2b2a819ad6eec39e8f1d6b53001af1e5469f8c177579cdaeb313115b825f"
dependencies = [
"heck 0.4.1",
"proc-macro2",
"quote",
"syn 2.0.11",
"syn 2.0.16",
]
[[package]]
name = "clap_lex"
version = "0.4.1"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1"
checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
[[package]]
name = "cmus-notify"
@ -561,9 +550,9 @@ dependencies = [
[[package]]
name = "enumflags2"
version = "0.7.5"
version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb"
checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2"
dependencies = [
"enumflags2_derive",
"serde",
@ -571,23 +560,23 @@ dependencies = [
[[package]]
name = "enumflags2_derive"
version = "0.7.4"
version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae"
checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.107",
"syn 2.0.16",
]
[[package]]
name = "env_logger"
version = "0.7.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
dependencies = [
"atty",
"humantime",
"is-terminal",
"log",
"regex",
"termcolor",
@ -845,15 +834,6 @@ version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
[[package]]
name = "hermit-abi"
version = "0.2.6"
@ -877,12 +857,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "humantime"
version = "1.3.0"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
dependencies = [
"quick-error",
]
checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
[[package]]
name = "id3"
@ -1015,12 +992,9 @@ dependencies = [
[[package]]
name = "log"
version = "0.4.17"
version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
dependencies = [
"cfg-if",
]
checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
[[package]]
name = "lrc"
@ -1209,9 +1183,9 @@ dependencies = [
[[package]]
name = "once_cell"
version = "1.17.0"
version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
[[package]]
name = "ordered-stream"
@ -1254,9 +1228,9 @@ dependencies = [
[[package]]
name = "parse-display"
version = "0.8.0"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f96cc033d72896bb9a2c239a14e1141c3e2eae6d649e7c10ef4e598d66bc86c"
checksum = "ddcac6cdc2aaa03a89780c6681ffb46ac5b4b7dbade8d2a20a6a501f6fd363a8"
dependencies = [
"once_cell",
"parse-display-derive",
@ -1265,9 +1239,9 @@ dependencies = [
[[package]]
name = "parse-display-derive"
version = "0.8.0"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5587062be441f3d868f7c4c9d13c67f286b03aa679d7f8176ef80bf2ee79e5d"
checksum = "6e503280f7d6dbf7566bc63d903c3b0f595fc11553a7e1f87f81adb8fcbca983"
dependencies = [
"once_cell",
"proc-macro2",
@ -1275,7 +1249,7 @@ dependencies = [
"regex",
"regex-syntax 0.6.29",
"structmeta",
"syn 1.0.107",
"syn 2.0.16",
]
[[package]]
@ -1344,9 +1318,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]]
name = "pretty_env_logger"
version = "0.4.0"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d"
checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c"
dependencies = [
"env_logger",
"log",
@ -1364,9 +1338,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.52"
version = "1.0.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224"
checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406"
dependencies = [
"unicode-ident",
]
@ -1380,12 +1354,6 @@ dependencies = [
"bytemuck",
]
[[package]]
name = "quick-error"
version = "1.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
[[package]]
name = "quick-xml"
version = "0.23.1"
@ -1478,13 +1446,13 @@ dependencies = [
[[package]]
name = "regex"
version = "1.8.1"
version = "1.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370"
checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax 0.7.1",
"regex-syntax 0.7.2",
]
[[package]]
@ -1495,9 +1463,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
[[package]]
name = "regex-syntax"
version = "0.7.1"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c"
checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
[[package]]
name = "remove_dir_all"
@ -1559,22 +1527,22 @@ checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a"
[[package]]
name = "serde"
version = "1.0.160"
version = "1.0.164"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c"
checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.160"
version = "1.0.164"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df"
checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.11",
"syn 2.0.16",
]
[[package]]
@ -1647,25 +1615,25 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "structmeta"
version = "0.1.5"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bd9c2155aa89fb2c2cb87d99a610c689e7c47099b3e9f1c8a8f53faf4e3d2e3"
checksum = "78ad9e09554f0456d67a69c1584c9798ba733a5b50349a6c0d0948710523922d"
dependencies = [
"proc-macro2",
"quote",
"structmeta-derive",
"syn 1.0.107",
"syn 2.0.16",
]
[[package]]
name = "structmeta-derive"
version = "0.1.5"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bafede0d0a2f21910f36d47b1558caae3076ed80f6f3ad0fc85a91e6ba7e5938"
checksum = "a60bcaff7397072dca0017d1db428e30d5002e00b6847703e2e42005c95fbe00"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.107",
"syn 2.0.16",
]
[[package]]
@ -1702,9 +1670,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.11"
version = "2.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21e3787bb71465627110e7d87ed4faaa36c1f61042ee67badb9e2ef173accc40"
checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01"
dependencies = [
"proc-macro2",
"quote",
@ -1793,7 +1761,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.11",
"syn 2.0.16",
]
[[package]]

View File

@ -32,21 +32,21 @@ include = [
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
serde = "1.0.160"
serde = "1.0.164"
id3 = "1.7.0"
lrc = { version = "0.1.7", optional = true }
notify-rust = { version = "4.8.0", features = ["images"] }
image = "0.24.6"
regex = "1.8.1"
regex = "1.8.4"
typed-builder = "0.14.0"
log = { version = "0.4.17", optional = true }
pretty_env_logger = { version = "0.4.0", optional = true }
log = { version = "0.4.19", optional = true }
pretty_env_logger = { version = "0.5.0", optional = true }
thiserror = "1.0.40"
parse-display = "0.8.0"
parse-display = "0.8.1"
clap-markdown = { version = "0.1.3", optional = true }
[dependencies.clap]
version = "4.2.4"
version = "4.3.3"
features = ["wrap_help", "cargo", "usage", "derive", "suggestions", "color"]
[dependencies.confy]

View File

@ -1,4 +1,4 @@
# cmus-notify: This program is a cmus status notification tool written in Rust, which can be easily configured and used for different purposes. It provides notifications for track changes, status changes, volume, playing mood and more
# cmus-notify: This program is a cmus status notification tool written in Rust, which can be easily configured and used for different purposes. It provides notifications for track changes, status changes, volume, playing mode and more
![track change notification](./screenshots/0.0.1_track_change_notify_1_cropped.png)
![another track change notification](./screenshots/0.0.1_track_change_notify_2_cropped.png)
@ -7,21 +7,25 @@
> **Note:** This project is still in its early stages and is not yet ready for production use. It is currently being developed as a just-for-fun project. If you are interested in contributing, please feel free to open an issue or a pull request.
## Installation
- You can install the latest release from [crates.io][crates.io] using `cargo install cmus-notify`
- You can also install the latest version from the git repository using `cargo install --git https://github.com/anas-elgarhy/cmus-notify`
- Or if you use Arch Linux, you can install the [AUR package][aur package] using your favorite AUR helper. e.g. `yay -S notify-cmus`
## Usage
- Run `cmus-notify` in your terminal to start the program, the program will run in the background and will notify you about cmus status changes
- You can also run `cmus-notify --help` to see the available options, also you can see the available options in the [usage](./docs/usage.md)
- You also have the ability to configure the program using a configuration file, you basically have the same options as the command line arguments, but you can also use the configuration file to set the default values for the command line arguments, the default configuration file path is `~/.config/cmus-notify/config.toml`, you can also use the `--config` option to specify a custom configuration file path, the default config file will be created in `~/.config/cmus-notify/config.toml` if it doesn't exist
- The recommended way to use the program is to run it in the background when you start the `cmus` music player, you can do that by creating an alias for `cmus` in your shell configuration file, e.g. `alias cmus="cmus-notify --link & cmus"`, the `--link` option will link the `cmus-notify` process to the `cmus` process, so when you close `cmus` the `cmus-notify` process will also be terminated
## Development
- This project is written in Rust, so you need to have Rust installed on your system, you can install Rust using [rustup](https://rustup.rs/)
- This project, like most Rust projects, uses `cargo` as the build system. But to make my life easier I decided to use [just][just] as a task runner, so you need to install `just` using `cargo install just`
### Just tasks
- To build the project, run `just build` in the debug mode with all the features enabled
- To build the project in the release mode, run `just build--release` with all the features enabled
- To build and run the project, run `just run`, this will build the project in the debug mode and run it with the debug log level
@ -32,9 +36,7 @@
> You can see the all the available tasks and aliases in the [justfile](./justfile), or by running `just --list`
[repo]: https://github.com/anas-elgarhy/cmus-notify
[crates.io]: https://crates.io/crates/cmus-notify
[aur package]: https://aur.archlinux.org/packages/notify-cmus/
[just]: https://github.com/casey/just
[grcov]:https://github.com/mozilla/grcov
[grcov]: https://github.com/mozilla/grcov