diff options
Diffstat (limited to 'src/bin/riki.rs')
-rw-r--r-- | src/bin/riki.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/bin/riki.rs b/src/bin/riki.rs index 9749e3b..1455b45 100644 --- a/src/bin/riki.rs +++ b/src/bin/riki.rs @@ -32,6 +32,7 @@ fn real_main() -> Result<(), SiteError> { let args = Args::parse(); match args.command { Command::Build(cmd) => cmd.run()?, + Command::List(cmd) => cmd.run()?, } info!("riki ends OK"); @@ -47,6 +48,7 @@ struct Args { #[derive(Parser)] enum Command { Build(Build), + List(List) } #[derive(Parser)] @@ -92,3 +94,22 @@ impl Build { Ok(()) } } + +#[derive(Parser)] +struct List { + srcdir: PathBuf, +} + +impl List { + fn run(&self) -> Result<(), SiteError> { + 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()); + } + Ok(()) + } +} |