assemble_freight/
lib.rs

1#![deny(rustdoc::broken_intra_doc_links)]
2
3//! Freight is the main implementation library for how assemble projects are built.
4//!
5//! Binaries produced by the bin maker should use this library for execution purposes.
6
7use crate::core::TaskResolver;
8
9use assemble_core::prelude::{Assemble, StartParameter};
10
11use crate::project_properties::ProjectProperties;
12use crate::utils::{FreightResult, TaskResult, TaskResultBuilder};
13
14#[macro_use]
15extern crate log;
16
17pub mod cli;
18pub mod core;
19pub mod ops;
20pub mod project_properties;
21pub mod utils;
22pub mod consts;
23pub mod startup;
24
25pub use crate::cli::FreightArgs;
26
27/// initializes the assemble instance
28pub fn init_assemble<S: Into<StartParameter>>(args: S) -> FreightResult<Assemble> {
29    let start_parameter = args.into();
30    let assemble = Assemble::new(start_parameter);
31    Ok(assemble)
32}
33
34/// Initializes assemble from the environment
35pub fn init_assemble_from_env() -> FreightResult<Assemble> {
36    let freight_args = FreightArgs::from_env();
37    init_assemble(freight_args)
38}