2023-06-22 23:06:45 +01:00
|
|
|
use crate::ipc::commands::Command;
|
|
|
|
use crate::ipc::responses::Response;
|
|
|
|
use clap::Parser;
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
|
|
|
|
#[derive(Parser, Debug, Serialize, Deserialize)]
|
|
|
|
#[command(version)]
|
|
|
|
pub struct Args {
|
|
|
|
#[command(subcommand)]
|
|
|
|
pub command: Option<Command>,
|
2024-01-20 23:42:43 +00:00
|
|
|
|
2024-05-10 22:40:00 +01:00
|
|
|
/// Prints the config JSON schema to `stdout`
|
|
|
|
/// and exits.
|
|
|
|
#[cfg(feature = "schema")]
|
|
|
|
#[arg(long("print-schema"))]
|
|
|
|
pub print_schema: bool,
|
|
|
|
|
2024-05-18 17:00:27 +01:00
|
|
|
/// Print debug information to stderr
|
|
|
|
/// TODO: Make bar follow this too
|
|
|
|
#[arg(long)]
|
|
|
|
pub debug: bool,
|
|
|
|
|
2024-01-20 23:42:43 +00:00
|
|
|
/// `bar_id` argument passed by `swaybar_command`.
|
|
|
|
/// Not used.
|
|
|
|
#[arg(short('b'), hide(true))]
|
|
|
|
sway_bar_id: Option<String>,
|
2023-06-22 23:06:45 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
pub fn handle_response(response: Response) {
|
|
|
|
match response {
|
|
|
|
Response::Ok => println!("ok"),
|
|
|
|
Response::OkValue { value } => println!("ok\n{value}"),
|
|
|
|
Response::Err { message } => eprintln!("error\n{}", message.unwrap_or_default()),
|
|
|
|
}
|
|
|
|
}
|