R Under development (unstable) (2023-12-09 r85665 ucrt) -- "Unsuffered Consequences" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > ### We can't run the test on Windows because we have to pipe the output into a new process and I don't think that's possible :[ > if (tolower(.Platform$OS.type) == "windows"){ + invisible(TRUE) + } else { + passpassword <- function(pw, msg="", showstars=FALSE, noblank=FALSE) + { + syscmd <- paste0("echo '", pw, "' | ${R_HOME}/bin${R_ARCH_BIN}/Rscript -e 'cat(getPass:::readline_masked_term(msg=", paste0("\"", msg, "\""), ",", showstars, ",", noblank, "))'") + system(syscmd, intern=TRUE) + } + + pw <- 'asdf' + test <- passpassword(pw) + stopifnot(identical(test, pw)) + + pw.preblank <- paste0("\n\n", pw) + test <- passpassword(pw.preblank) + stopifnot(identical(test, character(0))) + + test <- passpassword(pw.preblank, noblank=TRUE) + stopifnot(identical(test, pw)) + } > > proc.time() user system elapsed 0.10 0.04 0.15