diff options
author | Lars Wirzenius <liw@liw.fi> | 2022-07-25 08:13:52 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2022-07-25 08:45:22 +0300 |
commit | bd08b37b8bd429e0e5c5817fb912fbc22566dcbf (patch) | |
tree | dae3a480a633cd4ce8bb5297ab795bae4d7727a7 /src/bin/riki.rs | |
parent | b08f50789bec1f9f0d7b4aa45177838b3bd2d24c (diff) | |
download | riki-bd08b37b8bd429e0e5c5817fb912fbc22566dcbf.tar.gz |
feat: "riki list" to list source files for a site
Sponsored-by: author
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(()) + } +} |