getPass
Description
A micro-package for reading "passwords", i.e. reading
user input with masking. The package's only exported function,
getPass(), behaves similarly to R's own readline(), only
the user text is not printed as it is typed. Currently we have support
for RStudio, the command line (every OS), and any platform where tcltk
is present.
Author(s)
Drew Schmidt and Wei-Chen Chen
References
Project URL: https://github.com/wrathematics/getPass
Password Input
Description
Password reader. Like R's readline() but the user-typed input
text is not printed to the screen.
Usage
getPass(msg = "PASSWORD: ", noblank = FALSE, forcemask = FALSE)
Arguments
msg
The message to enter into the R session before prompting
for the masked input. This can be any single string,
possibly including a "blank" (""); see the noblank
argument.
noblank
Logical; should blank passwords ("") be banned? By default,
they are allowed, except with RStudio where they are always banned.
forcemask
Logical; should the function stop with an error if masking
is not supported? If FALSE, the function will default
to use readline() with a warning message that the
input is not masked, and otherwise will stop with an error.
See the Details section for more information.
Details
Masking (i.e., not displaying the literal typed text as input) is supported on most, but not all platforms. It is supported in RStudio, provided you have a suitable version of the GUI. It should also work in the terminal on any major OS. Finally, it will work in any environment where the tcltk package is available (e.g., Windows with RGui). Notably, this will not work with Emacs; passwords can be read, but there will be no masking.
In the terminal, the maximum length for input is 255 characters. Additionally, messages printed to the terminal (including the "*" masking) are printed to stderr.
Value
If input is provided, then that is returned. If the user cancels
(e.g., cancel button on RStudio or ctrl+c in the terminal), then
NULL is returned.
Examples
## Not run:
# Basic usage
getPass::getPass()
# Get password with a custom message
getPass::getPass("Enter the password: ")
## End(Not run)