]> git.proxmox.com Git - cargo.git/blob - build.rs
Auto merge of #8456 - ehuss:embedded-man, r=alexcrichton
[cargo.git] / build.rs
1 use flate2::{Compression, GzBuilder};
2 use std::ffi::OsStr;
3 use std::fs;
4 use std::path::Path;
5
6 fn main() {
7 compress_man();
8 }
9
10 fn compress_man() {
11 let out_path = Path::new(&std::env::var("OUT_DIR").unwrap()).join("man.tgz");
12 let dst = fs::File::create(out_path).unwrap();
13 let encoder = GzBuilder::new()
14 .filename("man.tar")
15 .write(dst, Compression::best());
16 let mut ar = tar::Builder::new(encoder);
17
18 let mut add_files = |dir, extension| {
19 for entry in fs::read_dir(dir).unwrap() {
20 let path = entry.unwrap().path();
21 if path.extension() != Some(extension) {
22 continue;
23 }
24 println!("cargo:rerun-if-changed={}", path.display());
25 ar.append_path_with_name(&path, path.file_name().unwrap())
26 .unwrap();
27 }
28 };
29
30 add_files(Path::new("src/etc/man"), OsStr::new("1"));
31 add_files(Path::new("src/doc/man/generated_txt"), OsStr::new("txt"));
32 let encoder = ar.into_inner().unwrap();
33 encoder.finish().unwrap();
34 }