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}