jensmemesclient/cli/src/util.rs

34 lines
899 B
Rust
Raw Normal View History

2021-05-27 18:01:30 +02:00
use anyhow::bail;
use libjens::JMClient;
2020-12-05 12:08:24 +01:00
use tokio::process::Command;
2021-05-27 18:01:30 +02:00
pub const NO_SUCH_CATEGORY_ERROR: &str = "The given Category does not exist!";
pub const NO_SUCH_USER_ERROR: &str = "The given User does not exist!";
pub async fn assert_category_exists(client: &JMClient, cat: &str) -> anyhow::Result<()> {
if !client.get_cats().await?.iter().any(|c| c.id == cat) {
bail!(NO_SUCH_CATEGORY_ERROR);
}
Ok(())
}
pub async fn assert_user_exists(client: &JMClient, user: &str) -> anyhow::Result<()> {
if !client.get_users().await?.iter().any(|u| u.name == user) {
bail!(NO_SUCH_USER_ERROR);
}
Ok(())
}
2020-12-19 19:43:23 +01:00
pub async fn open_link(url: &str) -> anyhow::Result<()> {
match std::env::var_os("BROWSER") {
Some(browser) => {
Command::new(&browser).arg(url).status().await?;
2020-12-18 16:58:53 +01:00
},
2020-12-19 19:43:23 +01:00
None => opener::open(&url)?,
}
Ok(())
2020-12-05 22:20:08 +01:00
}