@@ -80,6 +80,7 @@ usage () {
80
80
echo " checkout PATH... Sparse-checkout and decrypt files into \$ WORK_TREE"
81
81
echo " checkout COMMIT Switch files to a commit of plain or encrypted repo"
82
82
echo " gc Garbage collect, remove synced encrypted packs"
83
+ echo " pw Secure password input. Usage: PASSWORD=\" $( myba pw) \" "
83
84
echo " git CMD [OPTS] Inspect/execute raw git commands inside plain repo"
84
85
echo " git_enc CMD [OPTS] Inspect/execute raw git commands inside encrypted repo"
85
86
echo
@@ -118,18 +119,23 @@ _read_vars () {
118
119
read -r " $@ " || [ " $( eval echo ' $' " $1 " ) " ];
119
120
}
120
121
122
+ cmd_pw () {
123
+ stty -echo
124
+ {
125
+ IFS= read -p " Enter encryption PASSWORD=: " -r PASSWORD
126
+ echo
127
+ (
128
+ IFS= read -p " Repeat: " -r PASSWORD2
129
+ [ " $PASSWORD " = " $PASSWORD2 " ] || { warn ' ERROR: Password mismatch!' ; exit 1; }
130
+ )
131
+ } < /dev/tty
132
+ stty echo
133
+ echo
134
+ echo " $PASSWORD "
135
+ }
121
136
_ask_pw () {
122
137
if [ -z " ${PASSWORD+1} " ]; then
123
- stty -echo
124
- {
125
- IFS= read -p " Enter encryption PASSWORD=: " -r PASSWORD
126
- echo
127
- (
128
- IFS= read -p " Repeat: " -r PASSWORD2
129
- [ " $PASSWORD " = " $PASSWORD2 " ] || { warn ' ERROR: Password mismatch!' ; exit 1; }
130
- )
131
- } < /dev/tty
132
- stty echo
138
+ cmd_pw > /dev/null
133
139
fi
134
140
135
141
# Set up encryption via OpenSSL
@@ -831,6 +837,7 @@ case "$cmd" in
831
837
largest) verbose cmd_largest " $@ " ;;
832
838
checkout) verbose cmd_checkout " $@ " ;;
833
839
gc) verbose cmd_gc " $@ " ;;
840
+ pw) verbose cmd_pw " $@ " ;;
834
841
git_enc) verbose git_enc " $@ " ;;
835
842
git)
836
843
# Handle buggy ls-files in bare plain repo
0 commit comments