pub mod config;
mod git;
pub mod process_deploy;
pub mod process_deploy_nextjs_ssr;
pub mod process_deploy_rails;
pub mod process_deploy_rust;
pub mod process_deploy_swift;
pub mod process_deploy_vite_spa;
pub mod process_migrate;
mod remote_messages;
pub(crate) mod setup_create_new_project;
pub(crate) mod setup_project;
pub(crate) mod setup_select_project;
use {
anyhow::{anyhow, Result},
smbcloud_deploy::RsyncTransport,
smbcloud_model::runner::Runner,
smbcloud_utils::config::Config,
};
pub(crate) use smbcloud_deploy::known_hosts;
pub(crate) fn rsync_transport(
config: &Config,
runner: &Runner,
user_id: i32,
) -> Result<RsyncTransport> {
let home = dirs::home_dir().ok_or_else(|| anyhow!("Could not determine home directory"))?;
let identity_file = home.join(".ssh").join(format!("id_{user_id}@smbcloud"));
let remote_path = match &config.project.path {
Some(path) => path.clone(),
None => format!("apps/web/{}", config.project.name),
};
Ok(RsyncTransport::new(
runner.rsync_host(),
remote_path,
identity_file,
))
}