diff options
author | Vika <vika@fireburn.ru> | 2023-07-29 21:59:56 +0300 |
---|---|---|
committer | Vika <vika@fireburn.ru> | 2023-07-29 21:59:56 +0300 |
commit | 0617663b249f9ca488e5de652108b17d67fbaf45 (patch) | |
tree | 11564b6c8fa37bf9203a0a4cc1c4e9cc088cb1a5 /kittybox-rs/templates/build.rs | |
parent | 26c2b79f6a6380ae3224e9309b9f3352f5717bd7 (diff) | |
download | kittybox-0617663b249f9ca488e5de652108b17d67fbaf45.tar.zst |
Moved the entire Kittybox tree into the root
Diffstat (limited to 'kittybox-rs/templates/build.rs')
-rw-r--r-- | kittybox-rs/templates/build.rs | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/kittybox-rs/templates/build.rs b/kittybox-rs/templates/build.rs deleted file mode 100644 index ccd5b19..0000000 --- a/kittybox-rs/templates/build.rs +++ /dev/null @@ -1,90 +0,0 @@ -use std::ffi::OsStr; - -use libflate::gzip::Encoder; -use walkdir::WalkDir; - -fn main() -> Result<(), std::io::Error> { - use std::env; - let out_dir = std::path::PathBuf::from(env::var("OUT_DIR").unwrap()); - - println!("cargo::rerun-if-changed=javascript/"); - if let Ok(exit) = std::process::Command::new("tsc") - .arg("--outDir") - .arg(&out_dir) - .current_dir("javascript") - .spawn()? - .wait() - { - if !exit.success() { - std::process::exit(exit.code().unwrap_or(1)) - } - } - - println!("cargo:rerun-if-changed=assets/"); - let assets_path = std::path::Path::new("assets"); - let mut assets = WalkDir::new(&assets_path) - .into_iter(); - while let Some(Ok(entry)) = assets.next() { - if entry.file_type().is_dir() { - if let Err(err) = std::fs::create_dir(&out_dir.join(entry.path())) { - if err.kind() != std::io::ErrorKind::AlreadyExists { - return Err(err) - } - } - } else { - std::fs::copy(entry.path(), &out_dir.join(entry.path().strip_prefix(assets_path).unwrap()))?; - } - } - - let walker = WalkDir::new(&out_dir) - .into_iter() - .map(Result::unwrap) - .filter(|e| { - e.file_type().is_file() && e.path().extension().unwrap() != "gz" - }); - for entry in walker { - let normal_path = entry.path(); - let gzip_path = normal_path.with_extension({ - let mut extension = normal_path - .extension() - .unwrap() - .to_owned(); - extension.push(OsStr::new(".gz")); - extension - }); - eprintln!( - "{} -> {}", - normal_path.strip_prefix(&out_dir).unwrap().display(), - gzip_path.strip_prefix(&out_dir).unwrap().display() - ); - { - let mut out_file = std::fs::OpenOptions::new() - .create(true) - .truncate(true) - .write(true) - .open(&gzip_path)?; - - let mut in_file = std::fs::File::open(&normal_path)?; - - let mut encoder = Encoder::new(&mut out_file)?; - std::io::copy(&mut in_file, &mut encoder)?; - encoder.finish().into_result()?; - } - - let normal_len: f64 = std::fs::metadata(&normal_path).unwrap().len() as f64; - let gzipped_len: f64 = std::fs::metadata(&gzip_path).unwrap().len() as f64; - let ratio = gzipped_len / normal_len; - eprintln!("Ratio: {}", ratio); - if ratio <= 0.9 { - std::fs::remove_file(&normal_path)? - } else { - println!( - "cargo:warning={} compression ratio is {} (> 0.9), leaving as is", - entry.path().display(), - ratio - ); - std::fs::remove_file(&gzip_path)? - } - } - Ok(()) -} |