channel.rs

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