R/read-bitbar-prefs.R

Defines functions bitbar_plugins_dir read_bitbar_prefs

Documented in bitbar_plugins_dir

read_bitbar_prefs <- function() {

  bbprefs <- path.expand("~/Library/Preferences/com.matryer.BitBar.plist")

  if (!file.exists(bbprefs)) {

    stop(
      paste0(strwrap(paste0(c(
        "BitBar preferences file not found. ",
        "This likely means BitBar is not installed. ",
        "Please install BitBar before using the {bitbar} package."
      ), collapse = "")), collapse="\n"),
      call.=FALSE
    )
  }

  sys::exec_internal(
    cmd = "/usr/bin/plutil",
    args = c("-extract", "pluginsDirectory", "swift", "-o", "-", bbprefs)
  ) -> res

  if (res$status == 0) {

    res <- gsub('"', "", sub('^[^"]+', "", rawToChar(res$stdout)))
    res

  } else {
    stop("Error reading BitBar preferences.", call.=FALSE)
  }

}

#' BitBar plugins directory
#'
#' @export
bitbar_plugins_dir <- function() {
  read_bitbar_prefs()
}
hrbrmstr/bitbar documentation built on June 23, 2020, 11:02 a.m.