Project

General

Profile

1
#!/bin/bash
2
# Sets a password environment variable
3

    
4
self="$(readlink -f -- "$BASH_SOURCE")"
5

    
6
noInstr=
7
test _"$1" = _- && { noInstr=1; shift;}
8

    
9
test "$#" -ge 1 || \
10
{ echo "Usage: . $self env_var_name [msg] (note initial \".\")" >&2; exit 2;}
11

    
12
msg="$2"
13
test -n "$msg" || msg="$1"
14

    
15
function trace()
16
{
17
    { for arg in "$@"; do printf "%q " "$arg"; done; echo;} >&2
18
}
19

    
20
if test -z "${!1+t}"; then # env var with name $1 is unset
21
    if test -z "$noInstr"; then
22
        echo " To avoid having to reenter $msg password, run: " >&2
23
        trace . "$self" - "$@"
24
    fi
25
    read -s -p "Enter $msg password: "; echo
26
    export "$1"="$REPLY"
27
fi
(2-2/14)