mod headless_project; #[cfg(not(windows))]pub mod unix; #[cfg(test)]mod remote_editing_tests; use clap::Subcommand;use std::path::PathBuf; pub use headless_project::{HeadlessAppState, HeadlessProject}; #[derive(Subcommand)]pub enum Commands { Run { #[arg(long)] log_file: PathBuf, #[arg(long)] pid_file: PathBuf, #[arg(long)] stdin_socket: PathBuf, #[arg(long)] stdout_socket: PathBuf, #[arg(long)] stderr_socket: PathBuf, }, Proxy { #[arg(long)] reconnect: bool, #[arg(long)] identifier: String, }, Version,} #[cfg(not(windows))]pub fn run(command: Commands) -> anyhow::Result<()> { use anyhow::Context; use release_channel::{RELEASE_CHANNEL, ReleaseChannel}; use unix::{execute_proxy, execute_run}; match command { Commands::Run { log_file, pid_file, stdin_socket, stdout_socket, stderr_socket, } => execute_run( log_file, pid_file, stdin_socket, stdout_socket, stderr_socket, ), Commands::Proxy { identifier, reconnect, } => execute_proxy(identifier, reconnect).context("running proxy on the remote server"), Commands::Version => { let release_channel = *RELEASE_CHANNEL; match release_channel { ReleaseChannel::Stable | ReleaseChannel::Preview => { println!("{}", env!("ZED_PKG_VERSION")) } ReleaseChannel::Nightly | ReleaseChannel::Dev => { let commit_sha = option_env!("ZED_COMMIT_SHA").unwrap_or(release_channel.dev_name()); let build_id = option_env!("ZED_BUILD_ID"); if let Some(build_id) = build_id { println!("{}+{}", build_id, commit_sha) } else { println!("{commit_sha}"); } } }; Ok(()) } }}
mod headless_project;
#[cfg(not(windows))]
pub mod unix;
#[cfg(test)]
mod remote_editing_tests;
use clap::Subcommand;
use std::path::PathBuf;
pub use headless_project::{HeadlessAppState, HeadlessProject};
#[derive(Subcommand)]
pub enum Commands {
Run {
#[arg(long)]
log_file: PathBuf,
#[arg(long)]
pid_file: PathBuf,
#[arg(long)]
stdin_socket: PathBuf,
#[arg(long)]
stdout_socket: PathBuf,
#[arg(long)]
stderr_socket: PathBuf,
},
Proxy {
#[arg(long)]
reconnect: bool,
#[arg(long)]
identifier: String,
},
Version,
}
#[cfg(not(windows))]
pub fn run(command: Commands) -> anyhow::Result<()> {
use anyhow::Context;
use release_channel::{RELEASE_CHANNEL, ReleaseChannel};
use unix::{execute_proxy, execute_run};
match command {
Commands::Run {
log_file,
pid_file,
stdin_socket,
stdout_socket,
stderr_socket,
} => execute_run(
log_file,
pid_file,
stdin_socket,
stdout_socket,
stderr_socket,
),
Commands::Proxy {
identifier,
reconnect,
} => execute_proxy(identifier, reconnect).context("running proxy on the remote server"),
Commands::Version => {
let release_channel = *RELEASE_CHANNEL;
match release_channel {
ReleaseChannel::Stable | ReleaseChannel::Preview => {
println!("{}", env!("ZED_PKG_VERSION"))
}
ReleaseChannel::Nightly | ReleaseChannel::Dev => {
let commit_sha =
option_env!("ZED_COMMIT_SHA").unwrap_or(release_channel.dev_name());
let build_id = option_env!("ZED_BUILD_ID");
if let Some(build_id) = build_id {
println!("{}+{}", build_id, commit_sha)
} else {
println!("{commit_sha}");
}
}
};
Ok(())
}
}
}