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