summaryrefslogtreecommitdiff
path: root/crates/cli/src/cmd/compile.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/cli/src/cmd/compile.rs')
-rw-r--r--crates/cli/src/cmd/compile.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/crates/cli/src/cmd/compile.rs b/crates/cli/src/cmd/compile.rs
new file mode 100644
index 0000000..93e38d5
--- /dev/null
+++ b/crates/cli/src/cmd/compile.rs
@@ -0,0 +1,15 @@
+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)
+}