use crate::cli::{EmitArgs, examples, read_input_bytes, write_sql};
use crate::dialect::DialectId;
use crate::emit;
use crate::encoding::Encoding;
use crate::error::Result;
use crate::json;
pub fn run(args: EmitArgs) -> Result<()> {
if args.examples {
examples::print(examples::EMIT);
return Ok(());
}
let bytes = read_input_bytes(args.input.as_deref())?;
let raw = Encoding::Utf8.decode(&bytes)?;
let env = json::deserialize(&raw)?;
let dialect: DialectId = args.to.unwrap_or(env.dialect);
let sql = emit::emit(&env.statements, dialect)?;
write_sql(&sql, args.encoding)?;
Ok(())
}