File: development.R

package info (click to toggle)
r-cran-pkgdown 2.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 3,740 kB
  • sloc: javascript: 460; makefile: 14; sh: 13
file content (86 lines) | stat: -rw-r--r-- 1,965 bytes parent folder | download
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
meta_development <- function(pkg, call = caller_env()) {
  config_pluck_list(pkg, "development", call = call)

  mode <- dev_mode(pkg, call = call)

  destination <- config_pluck_string(
    pkg,
    "development.destination",
    default = "dev",
    call = call
  )
  version_label <- config_pluck_string(
    pkg,
    "development.version_label",
    call = call
  )
  if (is.null(version_label)) {
    if (mode %in% c("release", "default")) {
      version_label <- if (pkg$bs_version == 3) "default" else "muted"
    } else {
      version_label <- "danger"
    }
  }
  in_dev <- mode == "devel"

  list(
    destination = destination,
    mode = mode,
    version_label = version_label,
    in_dev = in_dev,
    prefix = if (in_dev) paste0(destination, "/") else ""
  )
}

dev_mode <- function(pkg, call = caller_env()) {
  mode <- Sys.getenv("PKGDOWN_DEV_MODE")
  if (identical(mode, "")) {
    mode <- config_pluck_string(
      pkg,
      "development.mode",
      default = "default",
      call = call
    )
  }

  if (mode == "auto") {
    mode <- dev_mode_auto(pkg$version)
  } else {
    valid_mode <- c("auto", "default", "release", "devel", "unreleased")
    if (!mode %in% valid_mode) {
      msg <- "{.field development.mode} must be one of {.or {valid_mode}}, not {mode}."
      config_abort(pkg, msg, call = call)
    }
  }

  mode
}

dev_mode_auto <- function(version) {
  version <- unclass(package_version(version))[[1]]

  if (length(version) < 3) {
    "release"
  } else if (length(version) == 3) {
    if (version[3] >= 9000) {
      "devel"
    } else {
      "release"
    }
  } else if (identical(version[1:3], c(0L, 0L, 0L))) {
    "unreleased"
  } else {
    "devel"
  }
}

# Called in render_page() so that LANG env var set up
version_tooltip <- function(mode) {
  switch(
    mode,
    default = "",
    release = tr_("Released version"),
    devel = tr_("In-development version"),
    unreleased = tr_("Unreleased version")
  )
}