summaryrefslogtreecommitdiff
path: root/cli/version.rs
blob: e4801e108ddd17b369079258f83ec93eb8549bad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.

use crate::shared::ReleaseChannel;

pub const GIT_COMMIT_HASH: &str = env!("GIT_COMMIT_HASH");
pub const TYPESCRIPT: &str = env!("TS_VERSION");
// TODO(bartlomieju): ideally we could remove this const.
const IS_CANARY: bool = option_env!("DENO_CANARY").is_some();
pub const RELEASE_CHANNEL: ReleaseChannel = if IS_CANARY {
  ReleaseChannel::Canary
} else {
  ReleaseChannel::Stable
};

pub fn deno() -> &'static str {
  if IS_CANARY {
    concat!(
      env!("CARGO_PKG_VERSION"),
      "+",
      env!("GIT_COMMIT_HASH_SHORT")
    )
  } else {
    env!("CARGO_PKG_VERSION")
  }
}

// Keep this in sync with `deno()` above
pub fn get_user_agent() -> &'static str {
  if IS_CANARY {
    concat!(
      "Deno/",
      env!("CARGO_PKG_VERSION"),
      "+",
      env!("GIT_COMMIT_HASH_SHORT")
    )
  } else {
    concat!("Deno/", env!("CARGO_PKG_VERSION"))
  }
}

pub fn release_version_or_canary_commit_hash() -> &'static str {
  if IS_CANARY {
    GIT_COMMIT_HASH
  } else {
    env!("CARGO_PKG_VERSION")
  }
}