From 4fd52cd19f4c612b75d08bc527f876575b6b8bcc Mon Sep 17 00:00:00 2001 From: boB Rudis Date: Wed, 2 Aug 2017 08:50:03 -0400 Subject: [PATCH] Refresh .Renviron --- DESCRIPTION | 8 +++++--- NAMESPACE | 8 ++++++++ NEWS.md | 3 +++ R/hrbraddins-package.R | 2 ++ R/refresh-renviron.R | 26 ++++++++++++++++++++++++++ README.Rmd | 1 + README.md | 1 + inst/rstudio/addins.dcf | 5 +++++ man/refresh_renviron.Rd | 11 +++++++++++ 9 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 R/refresh-renviron.R create mode 100644 man/refresh_renviron.Rd diff --git a/DESCRIPTION b/DESCRIPTION index e53f245..e4c8327 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: hrbraddins Type: Package Title: Additional Addins for RStudio -Version: 0.1.1 -Date: 2017-03-12 +Version: 0.2.0 +Date: 2017-08-02 Author: Bob Rudis (bob@rud.is) Maintainer: Bob Rudis Description: Provides additional addins for RStudio. @@ -24,5 +24,7 @@ Imports: rmarkdown, gistr, knitr, - twitteR + twitteR, + dplyr, + tidyr RoxygenNote: 6.0.1 diff --git a/NAMESPACE b/NAMESPACE index f89bc81..3cdfc09 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -3,6 +3,7 @@ export(bare_combine) export(join_rows) export(rantAddin) +export(refresh_renviron) export(tweet_share) import(knitr) import(magick) @@ -12,6 +13,13 @@ import(rmarkdown) import(rstudioapi) import(shiny) import(stringi) +importFrom(dplyr,as_data_frame) +importFrom(dplyr,bind_cols) +importFrom(dplyr,bind_rows) +importFrom(dplyr,filter) +importFrom(dplyr,full_join) +importFrom(dplyr,left_join) importFrom(gistr,gist_create) +importFrom(tidyr,gather) importFrom(twitteR,tweet) importFrom(utils,read.csv) diff --git a/NEWS.md b/NEWS.md index 9b4679b..1755157 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,2 +1,5 @@ +0.2.0 +* Refresh Renviron + 0.1.0 * Initial release diff --git a/R/hrbraddins-package.R b/R/hrbraddins-package.R index f0d218e..f9953d7 100644 --- a/R/hrbraddins-package.R +++ b/R/hrbraddins-package.R @@ -8,4 +8,6 @@ #' @importFrom twitteR tweet #' @importFrom utils read.csv #' @import shiny miniUI stringi +#' @importFrom dplyr as_data_frame bind_cols bind_rows left_join filter full_join +#' @importFrom tidyr gather NULL diff --git a/R/refresh-renviron.R b/R/refresh-renviron.R new file mode 100644 index 0000000..903277e --- /dev/null +++ b/R/refresh-renviron.R @@ -0,0 +1,26 @@ +#' Refreshes in-memory environment variables (if it exists) +#' +#' Equivanent to: `readRenviron("~/.Renviron")` +#' +#' @export +refresh_renviron <- function() { + + renv <- path.expand("~/.Renviron") + + curr_env <- gather(as_data_frame(as.list(Sys.getenv())), env_var, value) + + if (file.exists(renv)) readRenviron(renv) + + new_env <- gather(as_data_frame(as.list(Sys.getenv())), env_var, new_value) + + both_env <- full_join(curr_env, new_env, by="env_var") + + changed <- filter(both_env, value != new_value) + if (nrow(changed) > 0) { + cat(sprintf("The following environment variables were changed:\n%s", + sprintf(" - %s\n", changed$env_var))) + } + +} + + diff --git a/README.Rmd b/README.Rmd index a14f2af..ae0dc43 100644 --- a/README.Rmd +++ b/README.Rmd @@ -9,6 +9,7 @@ output: rmarkdown::github_document The following functions are implemented: +- `refresh_renviron` : Refreshes in-memory R environment variables, noting changes - `bare_combine`: Turn a selection of comma-separated bare strings into a - `base::combine`: statement - `join_rows`: Join `cr`/`lf`-separated selected rows of text into a single space-separated row diff --git a/README.md b/README.md index c9309dd..4ac2f85 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ The following functions are implemented: +- `refresh_renviron` : Refreshes in-memory R environment variables, noting changes - `bare_combine`: Turn a selection of comma-separated bare strings into a - `base::combine`: statement - `join_rows`: Join `cr`/`lf`-separated selected rows of text into a single space-separated row diff --git a/inst/rstudio/addins.dcf b/inst/rstudio/addins.dcf index 0e73486..f7df62c 100644 --- a/inst/rstudio/addins.dcf +++ b/inst/rstudio/addins.dcf @@ -1,3 +1,8 @@ +Name: Refresh .Renviron +Description: Refreshes the in-memory environment variables from ~/.Renviron without requiring a restart +Binding: refresh_renviron +Interactive: false + Name: Bare Combine Description: Turns a selected comma-separated list of strings into a base::c() statement Binding: bare_combine diff --git a/man/refresh_renviron.Rd b/man/refresh_renviron.Rd new file mode 100644 index 0000000..34a8fd1 --- /dev/null +++ b/man/refresh_renviron.Rd @@ -0,0 +1,11 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/refresh-renviron.R +\name{refresh_renviron} +\alias{refresh_renviron} +\title{Refreshes in-memory environment variables (if it exists)} +\usage{ +refresh_renviron() +} +\description{ +Equivanent to: `readRenviron("~/.Renviron")` +}