summaryrefslogtreecommitdiff
path: root/crates/cli/src/cmd/compile.rs
blob: 93e38d5a3173770211deb0214041b2d152a23276 (plain)
use eyre::Result;

use crate::cli::CompileArgs;
use crate::load::{default_twasm_output_path, load_compilable_module, write_output_bytes};

pub fn run(args: CompileArgs) -> Result<()> {
    let module = load_compilable_module(&args.input)?;
    let twasm = module.serialize_twasm()?;
    let output = match args.output {
        Some(output) => output,
        None => default_twasm_output_path(&args.input)?,
    };

    write_output_bytes(&output, &twasm, args.force)
}