mirror of
https://github.com/exoticorn/microw8.git
synced 2026-01-20 19:26:43 +01:00
Prepare 0.1.1 release
add devkit mode to web runtime add unpack and compile commands to uw8
This commit is contained in:
26
src/main.rs
26
src/main.rs
@@ -20,6 +20,8 @@ fn main() -> Result<()> {
|
||||
}
|
||||
Some("run") => run(args),
|
||||
Some("pack") => pack(args),
|
||||
Some("unpack") => unpack(args),
|
||||
Some("compile") => compile(args),
|
||||
Some("filter-exports") => filter_exports(args),
|
||||
Some("help") | None => {
|
||||
println!("uw8 {}", env!("CARGO_PKG_VERSION"));
|
||||
@@ -27,6 +29,8 @@ fn main() -> Result<()> {
|
||||
println!("Usage:");
|
||||
println!(" uw8 run [-t/--timeout <frames>] [-w/--watch] [-p/--pack] [-u/--uncompressed] [-l/--level] [-o/--output <out-file>] <file>");
|
||||
println!(" uw8 pack [-u/--uncompressed] [-l/--level] <in-file> <out-file>");
|
||||
println!(" uw8 unpack <in-file> <out-file>");
|
||||
println!(" uw8 compile [-d/--debug] <in-file> <out-file>");
|
||||
println!(" uw8 filter-exports <in-wasm> <out-wasm>");
|
||||
Ok(())
|
||||
}
|
||||
@@ -166,6 +170,28 @@ fn pack(mut args: Arguments) -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn unpack(mut args: Arguments) -> Result<()> {
|
||||
let in_file = args.free_from_os_str::<PathBuf, bool>(|s| Ok(s.into()))?;
|
||||
let out_file = args.free_from_os_str::<PathBuf, bool>(|s| Ok(s.into()))?;
|
||||
|
||||
uw8_tool::unpack_file(&in_file, &out_file).into()
|
||||
}
|
||||
|
||||
fn compile(mut args: Arguments) -> Result<()> {
|
||||
let mut options = curlywas::Options::default();
|
||||
if args.contains(["-d", "--debug"]) {
|
||||
options = options.with_debug();
|
||||
}
|
||||
|
||||
let in_file = args.free_from_os_str::<PathBuf, bool>(|s| Ok(s.into()))?;
|
||||
let out_file = args.free_from_os_str::<PathBuf, bool>(|s| Ok(s.into()))?;
|
||||
|
||||
let module = curlywas::compile_file(in_file, options)?;
|
||||
File::create(out_file)?.write_all(&module)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn filter_exports(mut args: Arguments) -> Result<()> {
|
||||
let in_file = args.free_from_os_str::<PathBuf, bool>(|s| Ok(s.into()))?;
|
||||
let out_file = args.free_from_os_str::<PathBuf, bool>(|s| Ok(s.into()))?;
|
||||
|
||||
Reference in New Issue
Block a user