channel.rs

 1use std::env;
 2
 3use lazy_static::lazy_static;
 4
 5lazy_static! {
 6    pub static ref RELEASE_CHANNEL_NAME: String = env::var("ZED_RELEASE_CHANNEL")
 7        .unwrap_or_else(|_| include_str!("../../zed/RELEASE_CHANNEL").to_string());
 8    pub static ref RELEASE_CHANNEL: ReleaseChannel = match RELEASE_CHANNEL_NAME.as_str() {
 9        "dev" => ReleaseChannel::Dev,
10        "preview" => ReleaseChannel::Preview,
11        "stable" => ReleaseChannel::Stable,
12        _ => panic!("invalid release channel {}", *RELEASE_CHANNEL_NAME),
13    };
14}
15
16#[derive(Copy, Clone, PartialEq, Eq, Default)]
17pub enum ReleaseChannel {
18    #[default]
19    Dev,
20    Preview,
21    Stable,
22}
23
24impl ReleaseChannel {
25    pub fn display_name(&self) -> &'static str {
26        match self {
27            ReleaseChannel::Dev => "Zed Dev",
28            ReleaseChannel::Preview => "Zed Preview",
29            ReleaseChannel::Stable => "Zed",
30        }
31    }
32
33    pub fn dev_name(&self) -> &'static str {
34        match self {
35            ReleaseChannel::Dev => "dev",
36            ReleaseChannel::Preview => "preview",
37            ReleaseChannel::Stable => "stable",
38        }
39    }
40}