Browse Source

Allow static folder to be missing

index-subcmd
Vincent Prouillet 7 years ago
parent
commit
1d8df5774f
3 changed files with 19 additions and 6 deletions
  1. +1
    -0
      CHANGELOG.md
  2. +4
    -1
      components/site/src/lib.rs
  3. +14
    -5
      src/cmd/serve.rs

+ 1
- 0
CHANGELOG.md View File

@@ -8,6 +8,7 @@
- Fix generated index section not found in `get_section` global function - Fix generated index section not found in `get_section` global function
- Fix permalink generation for index page - Fix permalink generation for index page
- Add Nim syntax highlighting - Add Nim syntax highlighting
- Allow static folder to be missing




## 0.2.1 (2017-10-17) ## 0.2.1 (2017-10-17)


+ 4
- 1
components/site/src/lib.rs View File

@@ -431,7 +431,10 @@ impl Site {
&self.base_path.join("themes").join(theme).join("static") &self.base_path.join("themes").join(theme).join("static")
)?; )?;
} }
self.copy_static_directory(&self.static_path)?;
// We're fine with missing static folders
if self.static_path.exists() {
self.copy_static_directory(&self.static_path)?;
}


Ok(()) Ok(())
} }


+ 14
- 5
src/cmd/serve.rs View File

@@ -95,17 +95,22 @@ pub fn serve(interface: &str, port: &str, config_file: &str) -> Result<()> {
console::warn_about_ignored_pages(&site); console::warn_about_ignored_pages(&site);
site.build()?; site.build()?;
console::report_elapsed_time(start); console::report_elapsed_time(start);
let mut watching_static = false;


// Setup watchers // Setup watchers
let (tx, rx) = channel(); let (tx, rx) = channel();
let mut watcher = watcher(tx, Duration::from_secs(2)).unwrap(); let mut watcher = watcher(tx, Duration::from_secs(2)).unwrap();
watcher.watch("content/", RecursiveMode::Recursive) watcher.watch("content/", RecursiveMode::Recursive)
.chain_err(|| "Can't watch the `content` folder. Does it exist?")?; .chain_err(|| "Can't watch the `content` folder. Does it exist?")?;
watcher.watch("static/", RecursiveMode::Recursive)
.chain_err(|| "Can't watch the `static` folder. Does it exist?")?;
watcher.watch("templates/", RecursiveMode::Recursive) watcher.watch("templates/", RecursiveMode::Recursive)
.chain_err(|| "Can't watch the `templates` folder. Does it exist?")?; .chain_err(|| "Can't watch the `templates` folder. Does it exist?")?;


if Path::new("static").exists() {
watching_static = true;
watcher.watch("static/", RecursiveMode::Recursive)
.chain_err(|| "Can't watch the `static` folder. Does it exist?")?;
}

// Sass support is optional so don't make it an error to no have a sass folder // Sass support is optional so don't make it an error to no have a sass folder
let _ = watcher.watch("sass/", RecursiveMode::Recursive); let _ = watcher.watch("sass/", RecursiveMode::Recursive);


@@ -142,11 +147,15 @@ pub fn serve(interface: &str, port: &str, config_file: &str) -> Result<()> {


let pwd = format!("{}", env::current_dir().unwrap().display()); let pwd = format!("{}", env::current_dir().unwrap().display());


let mut watchers = vec!["content", "templates"];
if watching_static {
watchers.push("static");
}
if site.config.compile_sass.unwrap() { if site.config.compile_sass.unwrap() {
println!("Listening for changes in {}/{{content, static, templates, sass}}", pwd);
} else {
println!("Listening for changes in {}/{{content, static, templates}}", pwd);
watchers.push("sass");
} }

println!("Listening for changes in {}/{{{}}}", pwd, watchers.join(", "));
println!("Web server is available at http://{}", address); println!("Web server is available at http://{}", address);
println!("Press Ctrl+C to stop\n"); println!("Press Ctrl+C to stop\n");




Loading…
Cancel
Save