use std::{path::PathBuf, sync::Arc}; use harmony::{ inventory::Inventory, maestro::Maestro, modules::application::{ RustWebFramework, RustWebapp, RustWebappScore, features::ContinuousDelivery, }, topology::{K8sAnywhereTopology, Url}, }; #[tokio::main] async fn main() { env_logger::init(); let application = RustWebapp { name: "harmony-example-rust-webapp".to_string(), project_root: PathBuf::from("./examples/rust/webapp"), framework: Some(RustWebFramework::Leptos), }; let app = RustWebappScore { name: "Example Rust Webapp".to_string(), domain: Url::Url(url::Url::parse("https://rustapp.harmony.example.com").unwrap()), features: vec![Box::new(ContinuousDelivery { application: Arc::new(application.clone()), })], application, }; let topology = K8sAnywhereTopology::from_env(); let mut maestro = Maestro::initialize(Inventory::autoload(), topology) .await .unwrap(); maestro.register_all(vec![Box::new(app)]); harmony_cli::init(maestro, None).await.unwrap(); }