1#![allow(clippy::collapsible_if)]
2#![allow(clippy::too_many_arguments)]
3
4pub mod admin_api;
5pub mod bin_resolver;
6pub mod capabilities;
7pub mod capability_bootstrap;
8pub mod cards;
9pub mod cli;
10pub mod cloudflared;
11pub mod component_qa_ops;
12pub mod config;
13pub mod config_gate;
14pub mod demo;
15pub mod doctor;
16pub mod domains;
17pub mod gmap;
18pub mod hooks;
19pub mod ingress;
20pub mod messaging_universal;
21pub mod ngrok;
22pub mod offers;
23pub mod onboard;
24pub mod operator_i18n;
25pub mod operator_log;
26pub mod project;
27pub mod provider_config_envelope;
28pub mod provider_registry;
29pub mod providers;
30pub mod qa_flow_handler;
31pub mod qa_persist;
32pub mod qa_setup_wizard;
33pub mod runner_exec;
34pub mod runner_integration;
35pub mod runtime_state;
36pub mod secret_requirements;
37pub mod secret_value;
38pub mod secrets_backend;
39pub mod secrets_client;
40pub mod secrets_gate;
41pub mod secrets_manager;
42pub mod secrets_setup;
43pub mod services;
44pub mod state_layout;
45pub mod static_routes;
46pub mod subscriptions_universal;
47pub mod supervisor;
48pub mod wizard;
49pub mod wizard_executor;
50pub mod wizard_i18n;
51pub mod wizard_plan_builder;
52pub mod wizard_spec_builder;
53
54pub use greentic_setup::discovery;
58pub use greentic_setup::secret_name;
59pub use greentic_setup::secrets as dev_store_path;
60pub use greentic_setup::setup_input;
61pub use greentic_setup::setup_to_formspec;
62
63#[cfg(test)]
64pub(crate) fn test_env_lock() -> &'static std::sync::Mutex<()> {
65 static LOCK: std::sync::OnceLock<std::sync::Mutex<()>> = std::sync::OnceLock::new();
66 LOCK.get_or_init(|| std::sync::Mutex::new(()))
67}