Last active 1 week ago

KarelWintersky revised this gist 1 week ago. Go to revision

1 file changed, 1 insertion, 4 deletions

test.sh

@@ -66,9 +66,6 @@ pass1=$(ask_password_visible "Password (mixed case, digits, min 12 chars)")
66 66 pass2=$(ask_password_visible2 "Password (mixed case, digits, min 12 chars)")
67 67 pass3=$(ask_password_i "Password (mixed case, digits, min 12 chars):")
68 68
69 - summary_box \
70 - "passA" "${pass1}" \
71 - "passB" "${pass2}" \
72 - "passC" "${pass3}" \
69 + summary_box "passC" "${pass3}"
73 70
74 71

KarelWintersky revised this gist 1 week ago. Go to revision

1 file changed, 1 insertion, 1 deletion

test.sh

@@ -69,6 +69,6 @@ pass3=$(ask_password_i "Password (mixed case, digits, min 12 chars):")
69 69 summary_box \
70 70 "passA" "${pass1}" \
71 71 "passB" "${pass2}" \
72 - "passC" "${pass3}"
72 + "passC" "${pass3}" \
73 73
74 74

KarelWintersky revised this gist 1 week ago. Go to revision

1 file changed, 1 insertion, 1 deletion

test.sh

@@ -64,7 +64,7 @@ ask_password_visible2() {
64 64
65 65 pass1=$(ask_password_visible "Password (mixed case, digits, min 12 chars)")
66 66 pass2=$(ask_password_visible2 "Password (mixed case, digits, min 12 chars)")
67 - pass3=$(ask_password_i "Password")
67 + pass3=$(ask_password_i "Password (mixed case, digits, min 12 chars):")
68 68
69 69 summary_box \
70 70 "passA" "${pass1}" \

KarelWintersky revised this gist 1 week ago. Go to revision

1 file changed, 3 insertions, 3 deletions

test.sh

@@ -67,8 +67,8 @@ pass2=$(ask_password_visible2 "Password (mixed case, digits, min 12 chars)")
67 67 pass3=$(ask_password_i "Password")
68 68
69 69 summary_box \
70 - "1" "${pass1}" \
71 - "2" "${pass2}" \
72 - "3" "${pass3}"
70 + "passA" "${pass1}" \
71 + "passB" "${pass2}" \
72 + "passC" "${pass3}"
73 73
74 74

KarelWintersky revised this gist 1 week ago. Go to revision

1 file changed, 14 insertions, 1 deletion

test.sh

@@ -24,6 +24,16 @@ summary_box() {
24 24 echo ""
25 25 }
26 26
27 + ask_password_i() {
28 + local label=$1
29 + local default_password="$(openssl rand -base64 12)"
30 + local value
31 +
32 + read -e -rp " ${CYAN}?${RESET} $label: " -i "${default_password}" value </dev/tty
33 + echo "" >&2
34 + echo "$value"
35 + }
36 +
27 37 ask_password_visible() {
28 38 local label=$1
29 39 local default_password="$(openssl rand -base64 12)"
@@ -54,8 +64,11 @@ ask_password_visible2() {
54 64
55 65 pass1=$(ask_password_visible "Password (mixed case, digits, min 12 chars)")
56 66 pass2=$(ask_password_visible2 "Password (mixed case, digits, min 12 chars)")
67 + pass3=$(ask_password_i "Password")
57 68
58 69 summary_box \
59 70 "1" "${pass1}" \
60 - "2" "${pass2}"
71 + "2" "${pass2}" \
72 + "3" "${pass3}"
73 +
61 74

KarelWintersky revised this gist 1 week ago. Go to revision

1 file changed, 22 insertions, 2 deletions

test.sh

@@ -35,7 +35,27 @@ ask_password_visible() {
35 35 echo "${value:-$default_password}"
36 36 }
37 37
38 - admin_pass=$(ask_password_visible "Password (mixed case, digits, min 12 chars)")
38 + ask_password_visible2() {
39 + local label=$1
40 + local default_password="$(openssl rand -base64 12)"
41 + local value
42 +
43 + if [ -t 0 ] && [ -t 1 ] && command -v bash >/dev/null; then
44 + # Только если настоящий интерактивный терминал
45 + read -e -rp " ${CYAN}?${RESET} $label: " -i "$default_password" value </dev/tty 2>/dev/null || \
46 + read -r -p " ${CYAN}?${RESET} $label [$default_password]: " value </dev/tty
47 + else
48 + read -r -p " ${CYAN}?${RESET} $label [$default_password]: " value </dev/tty
49 + fi
50 +
51 + echo "${value:-$default_password}"
52 + echo "" >&2
53 + }
54 +
55 + pass1=$(ask_password_visible "Password (mixed case, digits, min 12 chars)")
56 + pass2=$(ask_password_visible2 "Password (mixed case, digits, min 12 chars)")
39 57
40 - summary_box "Password:" "${admin_pass}"
58 + summary_box \
59 + "1" "${pass1}" \
60 + "2" "${pass2}"
41 61

KarelWintersky revised this gist 1 week ago. Go to revision

1 file changed, 9 insertions

test.sh

@@ -1,6 +1,15 @@
1 1 #!/usr/bin/env bash
2 2 set -euo pipefail
3 3
4 + BOLD=$'\033[1m'
5 + DIM=$'\033[2m'
6 + RESET=$'\033[0m'
7 + RED=$'\033[0;31m'
8 + GREEN=$'\033[0;32m'
9 + YELLOW=$'\033[0;33m'
10 + BLUE=$'\033[0;34m'
11 + CYAN=$'\033[0;36m'
12 +
4 13 summary_box() {
5 14 local width=60
6 15 local border

KarelWintersky revised this gist 1 week ago. Go to revision

1 file changed, 32 insertions

test.sh(file created)

@@ -0,0 +1,32 @@
1 + #!/usr/bin/env bash
2 + set -euo pipefail
3 +
4 + summary_box() {
5 + local width=60
6 + local border
7 + border=$(printf '─%.0s' $(seq 1 $width))
8 + echo ""
9 + echo " ${CYAN}${border}${RESET}"
10 + while [ $# -gt 0 ]; do
11 + printf " ${CYAN}│${RESET} %-28s %s\n" "$1" "$2"
12 + shift 2
13 + done
14 + echo " ${CYAN}${border}${RESET}"
15 + echo ""
16 + }
17 +
18 + ask_password_visible() {
19 + local label=$1
20 + local default_password="$(openssl rand -base64 12)"
21 + local value
22 +
23 + printf " ${CYAN}?${RESET} $label [%s]: " "$default_password" >&2
24 + read -r value </dev/tty
25 +
26 + echo "${value:-$default_password}"
27 + }
28 +
29 + admin_pass=$(ask_password_visible "Password (mixed case, digits, min 12 chars)")
30 +
31 + summary_box "Password:" "${admin_pass}"
32 +
Newer Older