diff options
author | Dirkjan Ochtman <dirkjan@ochtman.nl> | 2017-02-08 16:39:53 +0100 |
---|---|---|
committer | Dirkjan Ochtman <dirkjan@ochtman.nl> | 2017-02-08 16:39:53 +0100 |
commit | 1dc554fafc8a97c211d35e7d756c04bc0dc93c1c (patch) | |
tree | d716055df4bbbab1ca14b2b4b482ddf7add41355 /testing/build.rs | |
parent | a3844f8ce58f16b6787f356e1adf5c7f59855ac2 (diff) | |
download | askama-1dc554fafc8a97c211d35e7d756c04bc0dc93c1c.tar.gz askama-1dc554fafc8a97c211d35e7d756c04bc0dc93c1c.tar.bz2 askama-1dc554fafc8a97c211d35e7d756c04bc0dc93c1c.zip |
Add build script to force rebuild on template changes
Diffstat (limited to 'testing/build.rs')
-rw-r--r-- | testing/build.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/testing/build.rs b/testing/build.rs new file mode 100644 index 0000000..2f868f4 --- /dev/null +++ b/testing/build.rs @@ -0,0 +1,26 @@ +use std::env; +use std::fs::{self, DirEntry}; +use std::io; +use std::path::Path; + +fn visit_dirs(dir: &Path, cb: &Fn(&DirEntry)) -> io::Result<()> { + if dir.is_dir() { + for entry in try!(fs::read_dir(dir)) { + let entry = try!(entry); + let path = entry.path(); + if path.is_dir() { + try!(visit_dirs(&path, cb)); + } else { + cb(&entry); + } + } + } + Ok(()) +} + +fn main() { + let root = env::var("CARGO_MANIFEST_DIR").unwrap(); + visit_dirs(&Path::new(&root).join("templates"), &|e: &DirEntry| { + println!("cargo:rerun-if-changed={}", e.path().to_str().unwrap()); + }).unwrap(); +} |