diff options
Diffstat (limited to 'src/bin/subplot.rs')
-rw-r--r-- | src/bin/subplot.rs | 34 |
1 files changed, 7 insertions, 27 deletions
diff --git a/src/bin/subplot.rs b/src/bin/subplot.rs index 3e865fb..8d4a660 100644 --- a/src/bin/subplot.rs +++ b/src/bin/subplot.rs @@ -5,9 +5,7 @@ use anyhow::Result; use chrono::{Local, TimeZone}; use structopt::StructOpt; -use subplot::{ - generate_test_program, resource, template_spec, DataFile, Document, MarkupOpts, Style, -}; +use subplot::{codegen, load_document, resource, DataFile, Document, MarkupOpts, Style}; use tracing::{event, instrument, span, Level, Subscriber}; use std::convert::TryFrom; @@ -162,7 +160,7 @@ impl Extract { fn run(&self) -> Result<()> { let span = span!(Level::TRACE, "extract"); let _enter = span.enter(); - let doc = cli::load_document(&self.filename, Style::default())?; + let doc = load_document(&self.filename, Style::default())?; let files: Vec<&DataFile> = if self.embedded.is_empty() { doc.files() @@ -268,7 +266,7 @@ impl Metadata { fn run(&self) -> Result<()> { let span = span!(Level::TRACE, "metadata"); let _enter = span.enter(); - let mut doc = cli::load_document(&self.filename, Style::default())?; + let mut doc = load_document(&self.filename, Style::default())?; let meta = cli::Metadata::try_from(&mut doc)?; match self.output_format { cli::OutputFormat::Plain => meta.write_out(), @@ -310,7 +308,7 @@ impl Docgen { event!(Level::TRACE, "PDF output chosen"); style.typeset_links_as_notes(); } - let mut doc = cli::load_document(&self.input, style)?; + let mut doc = load_document(&self.input, style)?; event!(Level::TRACE, "Got doc, now linting it"); doc.lint()?; event!(Level::TRACE, "Doc linted ok"); @@ -415,32 +413,14 @@ impl Codegen { fn run(&self) -> Result<()> { let span = span!(Level::TRACE, "codegen"); let _enter = span.enter(); - let mut doc = cli::load_document_with_pullmark(&self.filename, Style::default())?; - doc.lint()?; - let template = doc - .meta() - .template_name() - .ok_or_else(|| anyhow::anyhow!("No template name given"))? - .to_string(); - event!(Level::TRACE, ?template); - if !doc.check_named_files_exist(&template)? || !doc.check_matched_steps_have_impl(&template) - { - event!(Level::ERROR, "Found problems in document, cannot continue"); - eprintln!("Unable to continue"); - std::process::exit(1); - } - - event!(Level::TRACE, "Generating code"); - let spec = template_spec(&doc)?; - generate_test_program(&mut doc, &spec, &self.output, &template)?; - event!(Level::TRACE, "Finished generating code"); + let output = codegen(&self.filename, &self.output)?; if self.run { - let run = match spec.run() { + let run = match output.spec.run() { None => { eprintln!( "Template {} does not specify how to run suites", - spec.template_filename().display() + output.spec.template_filename().display() ); std::process::exit(1); } |