Project

General

Profile

1 183 aaronmk
#!/bin/bash
2 131 aaronmk
# Sets a password environment variable
3
4 291 aaronmk
self="$(readlink -f -- "$BASH_SOURCE")"
5
6 293 aaronmk
force=
7
test _"$1" = _- && { force=1; shift;}
8 292 aaronmk
9 251 aaronmk
test "$#" -ge 1 || \
10 291 aaronmk
{ echo "Usage: . $self env_var_name [msg] (note initial \".\")" >&2; exit 2;}
11 131 aaronmk
12 251 aaronmk
msg="$2"
13
test -n "$msg" || msg="$1"
14
15 290 aaronmk
function trace()
16
{
17
    { for arg in "$@"; do printf "%q " "$arg"; done; echo;} >&2
18
}
19
20 293 aaronmk
if test -n "$force" -o -z "${!1+t}"; then # env var with name $1 is unset
21
    if test -n "$force"; then action="change the saved value for"
22
    else action="avoid having to reenter"
23 292 aaronmk
    fi
24 293 aaronmk
    echo " To $action $msg password, run: " >&2
25
    trace . "$self" - "$@"
26
27 251 aaronmk
    read -s -p "Enter $msg password: "; echo
28 131 aaronmk
    export "$1"="$REPLY"
29
fi