1mod banner;
2mod cli;
3pub mod commands;
4pub mod generator;
5pub mod generators;
6pub mod project_generator;
7pub mod registry;
8pub mod templates;
9
10pub use cli::run;
12
13pub const TEMPLATE_WORKSPACE_PATH: &str = env!("DOIDO_GENERATOR_TEMPLATE_WORKSPACE_PATH");
17
18pub const DOIDO_VERSION: &str = env!("CARGO_PKG_VERSION");
23
24pub const TEMPLATE_USE_PATH_DEPS: bool = {
29 let flag = env!("DOIDO_GENERATOR_USE_PATH_DEPS").as_bytes();
30 flag.len() == 1 && flag[0] == b'1'
31};
32
33pub use generator::{GeneratedFile, Generator};
34pub use generators::{
35 channel::ChannelGenerator, controller::ControllerGenerator, generator_gen::GeneratorGenerator,
36 job::JobGenerator, mailer::MailerGenerator, migration::MigrationGenerator,
37 model::ModelGenerator, new::ProjectGenerator, scaffold::ScaffoldGenerator,
38 templates_gen::TemplatesGenerator,
39};
40pub use registry::GeneratorRegistry;
41
42pub fn default_registry() -> GeneratorRegistry {
43 let mut reg = GeneratorRegistry::new();
44 reg.register(Box::new(ControllerGenerator));
45 reg.register(Box::new(ModelGenerator));
46 reg.register(Box::new(MigrationGenerator));
47 reg.register(Box::new(JobGenerator));
48 reg.register(Box::new(MailerGenerator));
49 reg.register(Box::new(ChannelGenerator));
50 reg.register(Box::new(ScaffoldGenerator));
51 reg.register(Box::new(ProjectGenerator));
52 reg.register(Box::new(TemplatesGenerator));
53 reg.register(Box::new(GeneratorGenerator));
54 reg
55}