## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(eval = FALSE)

## -----------------------------------------------------------------------------
# # Start a command with results displayed in a terminal buffer
# termId <- rstudioapi::terminalExecute("ping rstudio.com")
# 
# # If viewing the result in the terminal buffer is sufficient,
# # then no need to do anything else. The command will continue
# # running and displaying its results without blocking the R session.
# 
# # To obtain the results programmatically, wait for it to finish.
# while (is.null(rstudioapi::terminalExitCode(termId))) {
#   Sys.sleep(0.1)
# }
# 
# result <- rstudioapi::terminalBuffer(termId)
# 
# # Delete the buffer and close the session in the IDE
# rstudioapi::terminalKill(termId)

## -----------------------------------------------------------------------------
# # start an interactive terminal using the shell selected in
# # RStudio global options
# myTerm <- rstudioapi::terminalCreate()
# 
# # ....
# # sometime later
# # ....
# if (!rstudioapi::terminalRunning(myTerm)) {
#   # start the terminal shell back up, but don't bring to front
#   rstudioapi::terminalActivate(myTerm, show = FALSE)
# 
#   # wait for it to start
#   while (!rstudioapi::terminalRunning(myTerm)) {
#     Sys.sleep(0.1)
#   }
# 
#   # send a new command
#   rstudioapi::terminalSend(myTerm, "echo Hello\n")
# }

