diff options
Diffstat (limited to 'src/bin/riki.rs')
-rw-r--r-- | src/bin/riki.rs | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/bin/riki.rs b/src/bin/riki.rs index 83d1a9c..70bf71c 100644 --- a/src/bin/riki.rs +++ b/src/bin/riki.rs @@ -2,6 +2,7 @@ use clap::{CommandFactory, FromArgMatches, Parser}; use git_testament::{git_testament, render_testament, GitModification}; use log::{debug, error, info}; use riki::error::SiteError; +use riki::name::Name; use riki::site::Site; use riki::util::{canonicalize, copy_file_from_source, mkdir, set_mtime}; use std::error::Error; @@ -145,16 +146,14 @@ impl Build { } else { page.to_html()? }; - let output = page.meta().destination_filename(&destdir); + let output = page.meta().destination_filename(); debug!("writing: {}", output.display()); htmlpage.write(&output)?; set_mtime(&output, page.meta().mtime())?; } - for file in site.files() { - let input = site.input_filename(file)?; - let output = site.output_filename(file)?; - copy_file_from_source(&input, &output)?; + for file in site.files_only() { + copy_file_from_source(file.source_path(), file.destination_path())?; } Ok(()) @@ -173,10 +172,10 @@ impl List { let srcdir = canonicalize(&self.srcdir)?; let mut site = Site::new(&srcdir, &srcdir); site.scan()?; - let mut filenames = site.included_files().to_vec(); - filenames.sort_unstable(); - for filename in filenames { - println!("{}", filename.display()); + let mut names: Vec<&Name> = site.pages_and_files().collect(); + names.sort_by_cached_key(|name| name.page_path()); + for name in names { + println!("{}", name); } Ok(()) } |