use std::io::Write as _;
use jj_lib::file_util;
use tracing::instrument;
use super::ConfigLevelArgs;
use crate::cli_util::CommandHelper;
use crate::command_error::CommandError;
use crate::command_error::user_error;
use crate::ui::Ui;
#[derive(clap::Args, Clone, Debug)]
pub struct ConfigPathArgs {
#[command(flatten)]
pub level: ConfigLevelArgs,
}
#[instrument(skip_all)]
pub async fn cmd_config_path(
ui: &mut Ui,
command: &CommandHelper,
args: &ConfigPathArgs,
) -> Result<(), CommandError> {
for config_path in args.level.config_paths(ui, command.config_env())? {
let path_bytes = file_util::path_to_bytes(&config_path).map_err(user_error)?;
ui.stdout().write_all(path_bytes)?;
writeln!(ui.stdout())?;
}
Ok(())
}