Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
61
third-party/vendor/sourcemap/examples/split_ram_bundle.rs
vendored
Normal file
61
third-party/vendor/sourcemap/examples/split_ram_bundle.rs
vendored
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
use std::env;
|
||||
use std::fs;
|
||||
use std::fs::File;
|
||||
use std::path::Path;
|
||||
|
||||
use sourcemap::ram_bundle::{split_ram_bundle, RamBundle, RamBundleType};
|
||||
use sourcemap::SourceMapIndex;
|
||||
|
||||
const USAGE: &str = "
|
||||
Usage:
|
||||
./split_ram_bundle RAM_BUNDLE SOURCEMAP OUT_DIRECTORY
|
||||
|
||||
This example app splits the given RAM bundle and the sourcemap into a set of
|
||||
source files and their sourcemaps.
|
||||
|
||||
Both indexed and file RAM bundles are supported.
|
||||
";
|
||||
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let args: Vec<_> = env::args().collect();
|
||||
if args.len() < 4 {
|
||||
println!("{USAGE}");
|
||||
std::process::exit(1);
|
||||
}
|
||||
|
||||
let bundle_path = Path::new(&args[1]);
|
||||
let ram_bundle = RamBundle::parse_indexed_from_path(bundle_path)
|
||||
.or_else(|_| RamBundle::parse_unbundle_from_path(bundle_path))?;
|
||||
|
||||
match ram_bundle.bundle_type() {
|
||||
RamBundleType::Indexed => println!("Indexed RAM Bundle detected"),
|
||||
RamBundleType::Unbundle => println!("File RAM Bundle detected"),
|
||||
}
|
||||
|
||||
let sourcemap_file = File::open(&args[2])?;
|
||||
let ism = SourceMapIndex::from_reader(sourcemap_file).unwrap();
|
||||
|
||||
let output_directory = Path::new(&args[3]);
|
||||
if !output_directory.exists() {
|
||||
panic!("Directory {} does not exist!", output_directory.display());
|
||||
}
|
||||
|
||||
println!(
|
||||
"Ouput directory: {}",
|
||||
output_directory.canonicalize()?.display()
|
||||
);
|
||||
let ram_bundle_iter = split_ram_bundle(&ram_bundle, &ism).unwrap();
|
||||
for result in ram_bundle_iter {
|
||||
let (name, sv, sm) = result.unwrap();
|
||||
println!("Writing down source: {name}");
|
||||
fs::write(output_directory.join(name.clone()), sv.source())?;
|
||||
|
||||
let sourcemap_name = format!("{name}.map");
|
||||
println!("Writing down sourcemap: {sourcemap_name}");
|
||||
let out_sm = File::create(output_directory.join(sourcemap_name))?;
|
||||
sm.to_writer(out_sm)?;
|
||||
}
|
||||
println!("Done.");
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue