summaryrefslogtreecommitdiff
path: root/src/bin/riki.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/riki.rs')
-rw-r--r--src/bin/riki.rs21
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(())
+ }
+}